一
我们在读取一个文件的内容时,需要打开这个文件。在Python程序中,可以通过内置函数open()来打开一个文件,并用相关的方法读或写文件中的内容以供程序处理和使用,同时可以将文件看作Python中的一种数据类型。
打开模式 | 执行操作 |
---|---|
‘r’ | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
‘w’ | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑。即原有内容会被删除。如果该文件不存在,创建新文件。 |
‘x’ | 写模式,新建一个文件,如果该文件已存在则会报错。 |
‘a’ | 追加模式,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
‘b’ | 以二进制模式打开文件。一般用于非文本文件,如:图片。 |
‘t’ | 以文本模式打开(默认)。一般用于文本文件,如:txt。 |
‘+’ | 可读写模式(可添加到其它模式中使用) |
二
当使用函数open()打开一个文件后,接下来就可以使用File对象对这个文件进行操作处理。File对象中的属性信息
属性 | 描述 |
---|---|
file.closed | 如果文件已关闭返回True,否则返回False |
file.mode | 返回打开文件的访问模式 |
file.name | 返回文件的名称 |
例子
# 打开一个文件
f = open("123.txt","wb")
print("文件名:",f.name)
print("是否已关闭:",f.closed)
print("访问模式:",f.mode)
运行的结果是:
文件名:123.txt
是否已关闭:False
访问模式:wb
三
close()用于关闭一个已经打开的文件,关闭后的文件不能再进行读写操作,否则报错。在程序中可以多次调用close()方法,当引用file对象操作另一个文件时,Python会自动关闭之前的file对象。及时使用方法关闭文件是一个好的编程习惯。
方法close()没有参数,也没有返回值。
f = open("123.txt"."wb")
print("文件名:",f.name)
f.close # 关闭文件
四
with语句,一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。
关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。
try:
f = open('myfile.txt', 'w')
for line in f:
print(line)
except OSError as error:
print('出错啦!%s' % str(error))
finally:
f.close()
# 出错啦!not readable
这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。