python怎么读取文件?如何优化?
2021-05-24 17:57:48
浏览数 (3081)
在 python 的高级使用中,常常涉及到读写文件。读写文件是各类编程语言中都很常见的 IO 操作。python 内置了读写文件的函数,使用这些函数可以快速的对文件内容进行读写。接下来就让小编告诉你,python 怎么读取文件吧。
打开文件对象
使用 open()
函数打开文件对象。必须指定文件路径。可以使用相对路径,也可以使用绝对路径。可以选择传入文件读写方式,默认为只读方式。可以传入文件编码方式,默认为 gbk 。
f =open('Zen.txt', 'r', encoding="utf-8")
#使用读模式打开一个文件对象,传入参数为文件相对位置和读写模式,编码格式为utf-8
常用标识符如下:
r | 以只读方式打开文件,从文件开头开始读取,没有文件会报错。 |
w | 以只写方式打开文件,如果没有文件则新建一个文件,如果有文件则从头开始写这个文件。 |
a | 以追加方式打开文件,如果没有文件则新建一个文件,如果有文件则从文档末尾开始写这个文件。 |
a+ | 可读写模式,写只能写在文件末尾。 |
w+ | 可读写,与a+的区别是要清空文件内容。 |
r+ | 可读写,与a+的区别是可以写到文件任何位置。 |
读取文件内容
读取文件内容可以用 read()
的一系列函数进行读取,详见代码(需要文件读写模式中可读,即只写方式不能读取文件)。
f =open('Zen.txt', 'r', encoding="utf-8")
#使用只读模式打开文件对象,文件编码格式为utf-8
f.read()
#一次将文本读取完毕,文件过大时容易溢出,可以指定文件大小
f.readline()
#一次读取一行文本数据,读取速度较慢
f.readlines()
#一次将文本读取完毕并按列生成字符串列表
写入文件内容
写入文件内容可以用 write()
的一系列函数进行写入,详见代码(需要文件模式中可写,即只读方式不能写入文件)。
f =open('Zen.txt', 'w', encoding="utf-8")
#使用只写模式打开文件对象,文件编码格式为utf-8
str = "The Zen of Python, by Tim Peters"
seq = {'Beautiful is better than ugly.','Explicit is better than implicit.','Simple is better than complex.'}
f.write(str)
#write()的参数是一个字符串,就是你要写入文件的内容.
f.writelines(seq)
#writelines()的参数是序列,比如列表,它会迭代帮你写入文件。
关闭文件
文件使用完后必须关闭,因为文件对象会占用系统资源,使用 close()
方法可以关闭文件。
f =open('Zen.txt', 'w', encoding="utf-8")
#使用只写模式打开文件对象,文件编码格式为utf-8
str = "The Zen of Python, by Tim Peters"
seq = {'Beautiful is better than ugly.','Explicit is better than implicit.','Simple is better than complex.'}
f.write(str)
#write()的参数是一个字符串,就是你要写入文件的内容.
f.writelines(seq)
#writelines()的参数是序列,比如列表,它会迭代帮你写入文件。
f.close()
使用try -catch抓取IOError
由于文件读写时都有可能产生 IOError,一旦出错,后面的 f.close()
就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try -catch-finally
来实现。
try:
f = open('zen.txt', 'r',encoding="utf-8")
print(f.read())
finally:
#当读写产生IOError时,使用finally将文件关闭
if f:
f.close()
使用 with 语句
使用 with
语句可以帮我们调用 close()
方法,这样就不用写 try-catch-finally
语句了。
总结
python 提供了内置的文件读写函数,利用这些函数我们可以快速的进行文件的读写,以上就是 python 怎么读取文件的全部内容,更多 python 文件读写知识尽在 python菜鸟教程。