文件异常与文本文件处理

一、文件异常

1、try... 一个 except 结构

2、try... 多个 except 结构

3、try...except...else 结 构
try...except...else 结构增加了“else 块”。如果 try 块中没有抛出异常,则执行 else 块。如果
try 块中抛出异常,则执行 except 块,不执行 else 块。

4、try...except...finally 结构
try...except...finally 结构中,finally 块无论是否发生异常都会被执行;通常用来释放 try 块中
申请的资源。

try:
        a = input(" " 请输入一个被除数:" ")
        b = input(" " 请输入一个除数:" ")
        c = float(a)/float(b)

 except BaseException as e:
        print(e)
else:
        print(c)
finally:
        print(" " 我是 y finally 中的语句,无论发生异常与否,都执行!" ")
        print(" " 程序结束!" ")

5、return 语句和异常处理问题
由于 return 有两种作用:结束方法运行、返回值。我们一般不把 return 放到异常处理结构
中,而是放到方法最后。

6、trackback 模块

import traceback
try:
        print( "step1")
        num = 1/0
except:
traceback.print_exc()

运行结果:
step1
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/mypro_exception/my01.py", line 7, in <module>
num = 1/0
ZeroDivisionError: division by zero

二、文本文件处理

1、write()/writelines()写入数据
write(a):把字符串 a 写入到文件中
writelines(b):把字符串列表写入文件中,不添加换行符

2、with 语句(上下文管理器)
with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能
确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。

s = ["高淇\n","高老三\n","高老五\n"]
with open(r"d:\bb.txt","w") as f:
f.writelines(s)

3、文本文件的读取
文件的读取一般使用如下三个方法:
1. read([size])
从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。
读取到文件末尾,会返回空字符串。
2. readline()
读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。
3. readlines()
文本文件中,每一行作为一个字符串存入列表中,返回该列表

读取一个文件前 4 个字符

with open(r"bb","r",encoding="utf-8") as f:
print(f.read(4))

4、二进制文件的读取和写入
二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,不过,我们需要指
定二进制模式,从而创建出二进制文件对象。例如:

f = open(r"d:\a.txt", 'wb') #可写的、重写模式的二进制文件对象
f = open(r"d:\a.txt", 'ab') #可写的、追加模式的二进制文件对象
f = open(r"d:\a.txt", 'rb') #可读的二进制文件对象
创建好二进制文件对象后,仍然可以使用 write()、read()实现文件的读写操作。

读取图片文件,实现文件的拷贝:

with open('aa.gif', 'rb') as f:
with open('aa_copy.gif', 'wb') as w:
for line in f.readlines():
w.write(line)
print('图片拷贝完成!')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值