Python中的文件读写操作:
我想大部分的编程语言的文件读写操作都不会有太大差别基本上都是按照以下的步骤执行的:
open打开文件
read,write读或写文件
close关闭文件
应牢记使用close关闭文件Python中一般使用以下方式进行文件的读写
#open file
try:
read,write
finally:
file.close()#关闭文件
Python中也有专门为这种情况而设计的语句with语句:
with open("file.txt") as file
do_something(file)
文件会在语句结束后自动关闭文件
with open("F:\\test.txt",'r') as f: print(f.read())
文件模式:
值 | 描述 |
---|---|
'r' | 读模式 |
'w' | 写模式 |
'a' | 追加模式 |
'b' | 二进制模式(可添加到其他模式中使用) |
'+' | 读写模式(可添加到其他模式中使用) |
f = open("F:\\test.txt",'r') try: str = f.read() print(str) finally: f.close()输出:
Hello word!
This is a test.
写文件示例:
f = open("F:\\test.txt",'w') try: str = "write test!" f.write(str) finally: f.close()
文件中写入:
write test!
当然以上方法只适用于读取小的文件,如果文件很大一次性读取文件估计电脑的内存都会被你占用了故可以调用read(size)方法规定每次读多少,如果具有换行符可以使用readline的方法按行读取。
示例:
f = open("F:\\test.txt",'r') try: for char in f.read(): print(char) finally: f.close()
按行读取:
f = open("F:\\test.txt",'r') try: for char in f.readline(): print(char) finally: f.close()当然有按行读取就有按行写入 writelines()
使用fileinput实现懒惰迭代:
在需要对一个非常大的文件进行迭代操作时,使用readlines占用内存太多,这时就可以使用fileinput。
fileinput模块包含了打开文件的函数,所以只需要传一个文件名给它
import fileinput,sys file_name = sys.argv[1] for line in fileinput.input(file_name): print(line)此处使用了传递参数的方式