本文是《搞定Python》系列文章的第六篇,介绍文件的读写操作。文件读写相对于java要简单的多,板式代码也比较多,最后用with方式打开文件,可以保证文件正常关闭。
1、读文件
一般的文件读写过程:打开、读写、关闭。python文件读取相对于java要简单的多,咱们一步步来,逐步完善。
# python文件读取
# Windows系统有文件扩展名的概念,linux、mac都没有,不影响文件读取
f = open('test.txt')
print(f.read())
f.close()
此时,要是你的当前目录没有test.txt这个文件,就会报异常,如图:
此时大家能想到java读取文件时的模板式代码,try…catch…finally。在python其实过程相似,只是写法有点不同。看下面代码:
# python文件读取
f = None # None就是java中的null
try:
f = open('test.txt')
print(f.read())
except FileNotFoundError as e:
print("文件未找到!", e.filename)
finally:
if f is not None: # 判断f不为空时
f.close()
此时再次执行时就打印:文件未找到! test.txt。异常处理完成了,下面咱们读取已经存在的文件。
注意:test.txt创建到和你这个python代码相同的目录,否则还是读不到。你也可以用绝对路径的方式,比如:c:/a/b/c/test.txt(windows),或者 /Users/a/b/c/test.txt(mac、linux)。文件创建完成后,代码不用改,直接执行代码,再看看:
再写一个按行读取的代码:
# python文件读取
f = None
try:
f = open('test.txt', 'r') # 以只读方式打开
for line in f.readlines():
print(line)
except FileNotFoundError as e:
print("文件未找到!", e.filename)
finally:
if f is not None:
f.close()
代码很简单,但是模板式的代码太多,python中也提供了try…resources的方式,咱们改一下:
with open('test.txt', 'r') as f:
for line in f.readlines():
print(line)
好了,python读文件就说完了。
2、写文件
有了读文件的基础,写文件就简单多了。直接看代码:
# python写文件
with open("test2.txt", 'a') as f: # 以追加的方式打开,a代表append
for i in range(0, 10):
f.write("第 %s 行,你好。\n" % i)
好了,就到这里了。
//~~