打开文件
方法1:
使用try/except/finally
例子:
try:data_in = open(r'D:\TEST\a.txt',encoding='utf-8')print(data_in.readlines(),end='')except IOError:print('File Error occured!')finally:data_in.close()
结果:
['
这是一个测试文件。\n', '文件的名称是a.txt\n', '仅仅用于测试。\n']
进程已结束,退出代码0
open方法:
open方法用于打开一个文件,并且同时创建一个文件(file)对象,
语法:
open(name[, mode[, buffering,[encoding]]])
name:字符串类型,是准备访问的文件名(包含路径)
mode:打开文件的模式,默认只读。
常用的模式有:
r | 读取文件,若文件不存在则会报错 |
w | 写入文件,若文件不存在则会先创建再写入,会覆盖原文件 |
a | 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾 |
r+ | 可读、可写,文件不存在也会报错,写操作时会覆盖 |
w+ | 可读,可写,文件不存在先创建,会覆盖 |
a+ | 可读、可写,文件不存在先创建,不会覆盖,追加在末尾 |
rb | 以二进制方式打开,只能读取文件。如果文件不存在,会发生异常 |
wb | 以二进制方式打开,只能写入文件。如果文件不存在,创建该文件; 如果文件存在,会清空,在打开(覆盖) |
buffering:缓存,0时不缓存,1时访问缓存行,大于1的整数时,指缓存区的大小,负值时,缓存区的大小为系统默认值。
encoding:指定打开文件时用的字符集,如gbk、utf-8等。
方法2:
使用with,此时无需使用finally,python解释器会自动处理文件的关闭,不需要考虑什么时候打开或者关闭文件。with利用了上下文管理协议的python技术。
例子1:
try:with open(r'D:\TEST\a.txt','w',encoding='utf-8') as aa_file:print(file = aa_file)except IOError as err:print('File Error occured!' + str(err))
例子:
with open('pi_digits.txt') as file_object:contents = file_object.read()print (contents.rstrip())