这篇文章主要介绍“python如何读取文件”,在日常操作中,相信很多人在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如何读取文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。