python怎么读取文件?如何优化?

猿友 2021-05-24 17:57:48 浏览数 (3058)
反馈

在 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菜鸟教程


0 人点赞