异常和文件操作

【报错】FileNotFoundError: [Errno 2] No such file or directory FileNotFoundError: [Errno 2] No such file or directory: 翻译:FileNotFoundError:[Errno 2]没有这样的文件或目录 原因:文件路径错误 目录类型一:相对路径导致的错误类型二:路径中的文件夹有误类型三:保存文件的时候报错 类型一:相对路径导致的错误 allnodes.npy的位置,如下图 正常运行的图 python工作路径改变 原来的代码不改变,则报错 类型二:路径中的文件夹有误 一般是没有建立文件夹,或者手写路径 阅读详情

异常和文件操作

异常

1.异常 - 程序报错

当程序出现了异常,程序直接结束

print('=====')
# print('abc'[5])
print('-----')
print('+++++')

2.异常捕获

异常捕获就是让程序在出现异常的时候不崩溃还可以接着往后执行

1)语法1: - 捕获所有类型的异常
try:
代码段1(需要捕获异常的代码)
except:
代码段2(捕获到异常后会执行的代码)
finally:
代码段
其他代码

2)执行过程:先执行代码段1,如果代码段1在执行过程中出现了异常,程序不会奔溃,直接执行代码段2,执行完代码段2才继续执行后续其他代码。

try:
    print('====')
    print('abc'[5])
    print('++++')
except:
    print('前面出现了异常')

3.异常捕获其他语法

语法二: - 捕获指定的一种异常

try:
    代码段1(需要捕获异常的代码)
except 异常类型:
    代码段2(捕获到异常后会执行的代码)
finally:
    代码段
其他代码

# print('abc'[5])     # IndexError
# age = int(input('请输入年龄:'))     # ValueError
# try:
#     age = int(input('请输入年龄:'))
#     print(age + 'acb')    # TypeError
# except ValueError:
#     print('输入有误,年龄必须是整数!')

语法三: - 同时捕获多种异常,针对不同的异常做相同的处理

try:
    代码段1(需要捕获异常的代码)
except (异常类型1, 异常类型2, 异常类型3,...):
    代码段2(捕获到异常后会执行的代码)
finally:
    代码段
其他代码

语法四:- 同时捕获多种异常,针对不同的异常做不一样的处理

try:
    代码段1(需要捕获异常的代码)
except 异常类型1:
    代码段11
except 异常类型2:
    代码段22
except 异常类型3:
    代码段33
...
finally:
    代码段
其他代码

4.finally

finally后面的代码段不管被捕获的代码发生了什么都会执行(就算try后面的代码出现异常没有被捕获导致程序奔溃,finally后面的代码也会执行)

# try:
#     print({'a': 10}['b'])
# except IndexError:
#     print('下标越界!')
# finally:
#     print('写遗书')
# print('其他语句')

5.抛出异常

raise 异常类型

class AgeError(Exception):
    def __str__(self):
        return '年龄值的有效范围是0~200'


age = int(input('请输入年龄:'))
if age > 200 or age < 0:
    raise AgeError

文件操作

1.数据持久化(数据本地化)
默认情况下程序中的数据都是保存在运行内存中,运行内存中是数据在程序结束的时候会自动销毁
如果希望程序结束后数据不销毁就必须将数据以文件的形式保存在硬盘中。
常用的文件格式:数据库文件(sqlit、db)、json文件(.json)、plist文件(.plist)、表格文件(xls、xlsx、csv)、二进制文件(图片、视频、音频)、普通文件(txt)

2.文件操作(文件内容的操作) - I/O操作
基本步骤:打开文件 -> 操作文件(读、写) -> 关闭文件
1)打开文件

open(file, mode=‘r’, *, encoding=None) - 以指定模式打开指定文件,并且返回文件对象
file - 需要打开的文件在计算机中的位置(文件路径)
绝对路径:文件在计算机中全路径(/Users/yuting/授课/Python2102/01语言基础/day13-异常捕获和文件操作/test.txt)
相对路径:在写路径的时候用一个点或者多个点来表示文件绝对路径的一部分
. - 表示当前目录(当前目录指的时候当前写代码的文件所在的目录),
… - 表示当前目录的上层目录
… - 表示当前目录的上层目录的上层目录
注意:如果只有一个点,这个点可以省略
mode - 决定打开文件后能进行的操作是读还是写?同时决定操作文件的时候对应数据的类型是字符串还是二进制 (mode需要两个值)
第一类值:控制读写
r - 只读(默认); 如果打开的文件不存在会报错FileNotFoundError
w - 只写;会清空原文件中的内容;如果打开的文件不存在,不报错并且自动创建对应的文件(如果路径中的文件夹不存在会报错)
a - 只写;会保留原文件中的内容;如果打开的文件不存在,不报错并且自动创建对应的文件(如果路径中的文件夹不存在会报错)
第二类值:控制操作数据的类型
t - 文本模式,对应的数据类型是str (文本文件才可以使用t来打开)(默认)
b - 二进制模式,对应的数据类型是bytes

案例:rt、tr、r; rb、br; wt、tw、w; wb、bw; at、ta、a; ab、ba

encoding - 设置文本文件的编码方式(只能在以t的模式打开文本文件的时候才需要设置)
一般设置成utf-8,原则是:对同一个文件进行读和写的时候打开时对应的编码方式要一致

第一个参数:file

# open(r'/Users/yuting/授课/Python2102/01语言基础/day13-异常捕获和文件操作/test.txt')
# open('./test.txt')

第二个参数:mode

r

# f = open('test.txt', 'r')
# f.read()
# f.write('abc')    # io.UnsupportedOperation: not writable

w

# f = open('test.txt', 'w')
# f.write('abc')
# f.read()        # io.UnsupportedOperation: not readable

a

# f = open('test.txt', 'a')
# f.write('abc')
# f.read()        # io.UnsupportedOperation: not readable

t

# f = open('test.txt', 'rt')
# result = f.read()
# print(type(result))     # <class 'str'>

b

# f = open('test.txt', 'rb')
# result = f.read()
# print(type(result))      # <class 'bytes'>

打开不存在的文件

# f = open('./test2.txt', 'r')   # FileNotFoundError: [Errno 2] No such file or directory: './test2.txt'
# f = open('./test2.txt', 'w')
# f = open('./test3.txt', 'a', encoding='utf-8')
  1. 操作文件

a. 读

文件对象.read() - 从读写位置开始读到文件结束

# f = open('test.txt', 'r')
# result = f.read()
# print(result)
# print('====================================')
# f.seek(0)           # 将读写位置移动到文件开头
# result = f.read()
# print(result)

文件对象.readlines() - 从读写位置开始读到文件结束,返回的是列表,列表中的元素是每一行内容(只能针对文本文件有效)

# f = open('test.txt', 'r')
# result = f.readlines()
# print(result)

文件对象.readline() - 从读写位置开始读到一行结束(只能针对文本文件有效)

# f = open('test.txt', 'rb')
# result = f.readline()
# print(result)    # aaaa
#
# result = f.readline()
# print(result)    # bbbb

下载图片

获取网络图片数据

import requests
response = requests.get('https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1404395923,1295062384&fm=26&gp=0.jpg')
print(response.content)

将图片数据保存到图片文件中

f = open('宝儿姐.jpg', 'bw')
f.write(response.content)

b. 写操作

文件对象.write(内容)

f = open('test.txt', 'wb')
# f.write(b'abc')

3)关闭文件 - 文件操作完成后需要关闭文件

文件对象.close()

# f = open('test.txt')
# print(f.read())
# f.seek(0)
# print(f.read())
# f.close()
# print(f.read())   # ValueError: I/O operation on closed file.

自动关闭关键

with open(file, mode=‘r’,*, encoding=None) as 文件对象:
操作文件

with open('test.txt') as f:
    print(f.read())

# print(f.read())     # ValueError: I/O operation on closed file.

1.数据持久化的方法

第一步:确定需要持久化的数据是什么
第二步:创建文件保持需要持久化的数据的初始值
第三步:在程序中需要这个数据的时候从文件中读出来
第四步:如果在程序中修改了这个数据,要将最新的数据更新到文件中

# 案例:打印程序的运行次数
def print_count():
    with open('count.txt', encoding='utf-8') as f:
        count = int(f.read())

    count += 1
    print(count)

    with open('count.txt', 'w', encoding='utf-8') as f:
        f.write(str(count))

print_count()


# 案例2:保存曾经添加的所有的名字
value = input('请输入数据:')

with open('name.txt', encoding='utf-8') as f:
    result = f.read()
names = eval(result)
names.append(value)
print(names)

with open('name.txt', 'w', encoding='utf-8') as f:
    f.write(str(names))

eval的用法

str1 = "[10, 20, 30]"    #  [10, 20, 30]
result = eval(str1)
print(result)           # [10, 20, 30]
print(type(result))     # <class 'list'>
print(result[-1])       # 30


str2 = "{'a': 10, 'b': 20}"    # {'a': 10, 'b': 20}
result = eval(str2)
print(result)           # {'a': 10, 'b': 20}
print(type(result))     # <class 'dict'>
print(result['a'])      # 10

作业

global choise

def input_account_password():
    account = input('请输入账号(3~6位):')
    password = input('请输入密码 (6~12位):')
    return (account,password)

def get_account_password():
    with open('account.txt','r') as f:
        lib_account = eval(f.read())
    with open('password.txt', 'r') as f:
        lib_password = eval(f.read())
    return (lib_account,lib_password)

def write_account_password(lib_account, lib_password):
    with open('account.txt', 'w') as f:
        f.write(str(lib_account))
    with open('password.txt','w') as f:
        f.write(str(lib_password))

def save_account_password(account,password):
    lib_account, lib_password = get_account_password()
    lib_account.append(account)
    lib_password.append(password)
    write_account_password(lib_account, lib_password)

def register():
    global choise
    account,password = input_account_password()
    lib_account,lib_password = get_account_password()
    if account in lib_account:
        print('注册失败!该账号已经注册过!')
    else:
        print('注册成功')
        save_account_password(account,password)


def login():
    global choise
    account, password = input_account_password()
    lib_account, lib_password = get_account_password()
    if  account not in lib_account:
        print('登录失败!改账号没有注册!')
    elif account in lib_account and password not in lib_password:
        print('登录失败!密码错误!')
    else:
        print('登录成功!')
        choise = '3'


def main_interface():
    global choise
    print('=='*11)
    print('** 欢迎来到XX管理系统 **')
    print('\t1.登\t录')
    print('\t2.注\t册')
    print('\t3.退\t出')
    print('=='*11)
    choise = input('请选择(1-3):')

while True:
    main_interface()
    if choise == '2':
        register()
    elif choise == '1':
        login()
    if choise == '3':
        print('已退出')
        break

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sIq9tP4W-1616069105448)(C:\Users\ly\AppData\Roaming\Typora\typora-user-images\image-20210318200407887.png)]

global choise
print('=='*11)
print('** 欢迎来到XX管理系统 **')
print('\t1.登\t录')
print('\t2.注\t册')
print('\t3.退\t出')
print('=='*11)
choise = input('请选择(1-3):')

while True:
main_interface()
if choise == ‘2’:
register()
elif choise == ‘1’:
login()
if choise == ‘3’:
print(‘已退出’)
break


[外链图片转存中...(img-sIq9tP4W-1616069105448)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3IPEaUVD-1616069105450)(C:\Users\ly\AppData\Roaming\Typora\typora-user-images\image-20210318200423356.png)]
python 文件操作和异常处理 文件的操作 文件操作介绍 文件的打开与关闭 文件的读写 文件及文件夹的相关操作 文件的作用 使用文件的目的: 保存数据存放在磁盘 就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 文件的读写 使用write()可以完成向文件写入数据 注意: 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据 读数据 如果文件中存在中文显示,会出现乱码需要添加encoding='utf-8' 读数据(... 阅读详情

相关推荐

python文件操作和异常

python文件的操作和异常@TOC 文件操作 这两个月复习考研的同时,在github上断断续续的跟着骆先生学习了一段时间的python,由于是自学所以经常会遇到一些容易卡死的问题,这篇文章我就简单的分享一下文件及文件异常的处理。 关于open函数的使用 函数语法 open(file: Union[str, bytes, int], mode: str=..., encoding: Optiona...

Bigbossi的博客 456

异常捕获和文件操作

目录今日总结一、异常捕获1. 异常2. 异常捕获3. 异常捕获其他语法4. finally5. 抛出异常二、文件操作1. 数据持久化2. 文件操作(文件内容的操作)1)打开文件2)操作文件3) 关闭文件3. 数据持久化的方法 今日总结 一、异常捕获 1. 异常 当程序出现了异常,程序直接结束 print('=====') # print('abc'[5]) print('-----') print('+++++') 2. 异常捕获 异常捕获就是让程序在出现异常的时候不崩溃还可以接着往后执行 语法1:

ttts27的博客 380

python-文件操作和异常处理

文件操作: 1:文件操作介绍 2:文件的打开与关闭 3:文件的读写 4:文件及文件夹的相关操作

weixin_45835679的博客 569

uniapp android与ios app的文件分享功能

uniapp 任意类型的文件分享功能

weixin_42373679的博客 2226

提升仿真效率:Synopsys VCS高级编译选项优化技巧(2023最新版)

本文深入探讨了Synopsys VCS 2023版本中的高级编译选项优化技巧,帮助工程师提升仿真效率。通过并行编译、智能代码分析、精准覆盖率采样等策略,结合真实案例展示如何显著缩短仿真周期并优化资源使用,适用于数字芯片验证和大型SoC设计。

weixin_30338481的博客 114

获取本机正版windows10激活密钥,以及正版office

本方法面向的是以前买过笔记本电脑给你预装了正版系统,激活了正版office(一般是家庭版)的情况,其他情况请自行尝试。

qq_45774917的博客 2万+

Redis(3:Redis异常与持久化机制)

Redis异常 Redis持久化

2301_81085167的博客 1474

关于图像傅里叶变换得到的频谱图的通俗理解

傅里叶变换过程: 经过傅里叶变化且频谱居中化处理的频谱图: 1.如果将图像某一行上的灰度变化看作是一个离散信号,那么整张图像可以看作是一个分布在二维平面上的信号,因此图像可看作是空间域信号。傅里叶变换则是将图像灰度分布(空间域信号)变换到了频域上,给我们提供了观察图像的另一个视角。 2.图像的频谱图(频谱居中后)的中心点是频率最低点,以该点为圆心,不同半径的上的点表示不同的频率。这里的图像频率是指对应原图像中的某灰度曲线变化的快慢(这么说不严谨,但是按照上面第1点的角度,似乎也可以这么理解

daimashiren的博客 2万+

Qt-异常捕获以及日志记录

Qt中的异常捕获以及Qt捕获不到异常现象的原因及解决方案,日志的接入及使用方法。

qq_48498725的博客 7565

自建智能算力中心与第三方算力租赁的深度分析

自建智算中心和第三方算力租赁的主要区别如下:对比维度自建算力中心第三方算力租赁初期成本数千万至数亿元硬件采购+机房基建零硬件投入,按需付费(如1元/卡时)部署速度6-12个月(采购、部署、调试)即时开通,分钟级资源调度运维难度需专业IT团队,承担断电、故障等风险服务商全托管,SLA保障99.95%可用性弹性扩展扩容需重新采购硬件,周期长、成本高支持秒级弹性伸缩,应对流量峰值技术迭代硬件更新周期长,易被淘汰自动升级。

2501_90999758的博客 2357

脑电分析:为什么大脑信号会“变同步”?——事件相关同步化与去同步化 (ERS/ERD) 全景解析

脑电分析中的事件相关同步化(ERS)和去同步化(ERD)是研究大脑动态节律的重要方法,反映特定任务下脑电频段能量的变化。ERD表示神经元活动分散(功率下降),提示脑区活跃处理信息;ERS则反映神经元同步(功率增强),常与静息状态相关。本文详解了ERS/ERD的生理机制、计算流程(包括基线校正和功率谱分析),并提供了Python实现示例,展示如何通过Welch法和STFT进行时频分析,生成ERD/ERS热力图。该技术广泛应用于运动想象脑机接口、癫痫检测等领域,为理解大脑功能状态提供了量化工具。

qq_32516809的博客 1396

Python的文件操作和异常处理

世界上没有完美的程序,任何程序在运行的过程中都可能出现异常,导致程序无法完美运行下去。

架构沉思录的博客 1471

一维光子晶体态密度计算与应用解析

态密度(DOS)是凝聚态物理和光子学中的核心概念,描述了量子态在能量空间的分布规律。基于麦克斯韦方程组的周期性介电结构分析表明,一维光子晶体通过布拉格散射形成光子带隙,其态密度曲线呈现典型的范霍夫奇点和禁带特征。这种特性使光子晶体在光学工程中具有重要价值,特别是在滤波器设计和传感器开发领域。通过转移矩阵法等数值计算手段,可以精确预测带隙位置和宽度,其中折射率对比度与周期数是关键设计参数。实际应用中,1550nm通信波段滤波器常采用Si/SiO2交替结构,而引入缺陷层则能产生高Q值缺陷模。计算优化时需注意数值

weixin_36487018的博客 193

Python文件操作和异常处理:高效处理数据的利器

Python是一种强大而灵活的编程语言,它提供了许多功能强大的工具和库,用于处理各种数据类型。在数据处理中,文件操作和异常处理是非常重要的方面。本文将介绍Python中的文件操作和异常处理,探讨如何使用它们来高效地处理数据。我们将深入了解Python中的文件操作。文件是存储和读取数据的主要方式之一,在数据处理过程中起着至关重要的作用。我们将学习如何打开、读取、写入和关闭文件,以及如何处理常见的文件操作任务,如逐行读取和按行写入,将介绍如何处理不同类型的文件,如文本文件、CSV文件和JSON文件等。

忆~遂愿的博客 3191

无监督学习与互信息

在机器学习中,获取大量高质量标注数据成本高昂。为解决此问题,无监督学习利用丰富的无标注数据成为研究重点。其中,互信息是衡量两个随机变量之间依赖关系的关键指标,能够捕捉非线性统计关联,非常适合处理非结构化数据。通过最大化神经网络中变量间的互信息,可以有效地从无标注数据中提取有用信息,提升模型在下游任务(如分类)的性能。互信息与熵密切相关,其值等于联合分布与边缘分布乘积间的KL散度,也可通过熵与条件熵的差值得出,具有对称性,并反映了已知一个变量后另一个变量不确定性的减少。

盼小辉丶的博客 3546

海洋捕食者算法(MPA)详解:从海洋生态智慧到高性能优化

摘要: 海洋捕食者算法(MPA)是一种基于海洋生态觅食行为的元启发式优化算法,模拟捕食者(如鲨鱼)的布朗运动和莱维飞行策略进行全局与局部搜索。算法分为三阶段:高速比阶段(全局探索)、单位速度比阶段(平衡搜索)和低速比阶段(局部开发),通过精英矩阵和FADs效应(概率扰动)避免早熟收敛。MPA具有参数少、收敛快、寻优能力强等特点,适用于复杂优化问题,其数学模型将生物行为转化为随机游走与自适应策略,并通过收敛因子动态调整探索-开发平衡。实验表明,MPA在多个基准问题上表现优异。

qq_42212808的博客 273

【C++】异常处理和文件操作

期待您的一键三连!欢迎指正!

Guiat的博客 736

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

异常处理和文件操作

文章目录1,异常处理1.1,异常的概念1.2 ,异常捕获1.2.1 捕获全部的异常1.2.2 不同的异常捕获1.3 ,异常的传递1.4 抛出异常2.文件操作2.1 文件的概念2.2 文件的基本操作2.3 文件/目录的常用管理操作 1,异常处理 1.1,异常的概念 异常:程序在运行时,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误,这就是异常 程序停止执行并且提示错误信息,这...

weixin_43477557的博客 849

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python中异常和文件操作

1.异常的概述? 在程序运行过程中,经常会遇到各种各样的错误,这些错误统称为“异常”。 java代码在运行时期发生的问题就是异常。在java中使用Exception来描述异常。 2.常用的异常有哪些? 其他常见异常自行翻译 如果我们在IDLE中print函数的括号是中文即会报错 (语法错误) 除数为0异常 nameerror:未声明/初始化对象 (没有属性) importerror:导入模块/对象失败 valueerror:传入无效的参数 ioerror:输入/输出操作失败 memoryerror:内存

Chenyang_lm的博客 232

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python的文件操作和异常处理

文件操作 1:文件操作介绍 作用:使用文件的目的:保存数据存放在磁盘 把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 2:文件的打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访 问模式) 格式:f = open(‘文件’, ‘w’)或者f = open(‘文件’, ‘r’) 3:文件的读写 写数据(write) ''' 以写W的方式是打开文件 格式: 对象 = open("文件","W") 对象.write

weixin_45056660的博客 1441

python的文件操作和异常

【文件操作:】 【文件的打开与关闭】:在python,使用open可以打开1212.txt的文件,如果本地没有1212.txt文件那么可以在文件名后边添加一个'w'。‘w’可以打开一个文件只用于写入,如果该文件已经存在那么就会将其覆盖,如果没有就会创建 【w方法】 【r方法】:以只读方式打开文件,文件的指针将会放在文件的开头。这是默认模式,如果r打开的是已存在文件就会打开,如果没有相对应的文件,那么就会报错 【a方法】打开一个·文件用于追加,如果该文件已经存在,文件指针将会放在文件的结尾

weixin_52781385的博客 1388

Python-Go 文件操作和异常操作

程序捕获错误,自己处理try:# 可能会出现异常的代码print("代码结束")#出现异常情况,执行except#except 捕获所有异常except :# 如果出错了,就会执行except部分print("不好意思,出错了")#打印具体的错误信息是什么# Exception 异常(Exception)是指在程序执行过程中遇到的所有意外或异常情况,可以表示所有的异常# 如果出错了,就会执行except部分print("不好意思,出错了", ex)

lpfstudy的博客 616

Python中的文件操作和异常

Python中的文件操作和异常 文章目录Python中的文件操作和异常一、文件01. 文件的概念1.1 文件的概念和作用1.2 文件的存储方式文本文件和二进制文件02. 文件的基本操作2.1 操作文件的套路2.2 操作文件的函数/方法2.3 read 方法 —— 读取文件文件指针2.4 打开文件的方式2.5 按行读取文件内容`readline` 方法2.6 文件读写案例 —— 复制文件小文件复制大...

wolfGuiDao的博客 902

json文件操作和异常处理

json文件是一种基于文本,独立于语言的轻量级数据交换格式.--基于文本的文本文件,不包含图片,视频等--独立于语言,不是某一种语言特有的,python,Java,C++...--轻量级,相同的数据量,json文件占用的文件大小相对较小--数据交换格式,后端服务器和前端页面交换数据使用的格式在自动化测试中经常用来存放测试数据,文件后缀名为.json。

Atopos__的博客 1649
上一篇: 模块
下一篇: 异常和文件操作
oklying
博客等级 码龄8年 6粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值