文件操作是编程中经常用到的处理。Python中也有对文件的读写处理操作。
1、读文件
使用“open”打开文件,
形式:with open(‘含路径的文件名’) as 文件名变量:
文件内容变量=文件名变量.read()
例如:
with open('e:/temp/readme.txt') as fo:
rows=fo.read()
print(rows)
注意,文件内容中如果包含中文字符等双字节字符的话,会读出来,但会不正确。
read函数中可以加入数值,这个数值代表希望读取的字符数。
读处理还可以使用readlines()函数,按照行的方式,读出所有行。其结果是一个列表数据。
注意,文件内容中如果包含中文字符等双字节字符的话,会读出来,但会不正确。
例如文件内容为:
test,555,hello
1234
aaa
bbb
2、写文件
使用关键字“write,要求打开文件时,以写的方式打开。
例:
with open('e:/temp/readme.txt') as fo:
rows=fo.readlines()
print(rows)
with open('e:/temp/readme.txt', 'w') as fo:
fo.write('write row\n')
fo.writelines(rows)
with open('e:/temp/readme.txt') as fo:
rows=fo.readlines()
print(rows)
以上代码执行后。输出为:
['test,555,hello\n', '1234\n', 'aaa\n', 'bbb\n', '\n']
['write row\n', 'test,555,hello\n', '1234\n', 'aaa\n', 'bbb\n', '\n']
可以看到在写入数据的时候,不是在末尾添加的方式写的。是清除了原先的内容后写的。
如果想要以尾部追加的方式写,使用关键字附加方式写,使用‘a’模式
例:
文件内容:
test,555,hello
1234
aaa
bbb
代码:
with open('e:/temp/readme.txt') as fo:
rows=fo.readlines()
print(rows)
with open('e:/temp/readme.txt', 'a') as fo:
fo.write('write row\n')
fo.writelines(rows)
with open('e:/temp/readme.txt') as fo:
rows=fo.readlines()
print(rows)
执行后,输出为:
['test,555,hello\n', '1234\n', 'aaa\n', 'bbb']
['test,555,hello\n', '1234\n', 'aaa\n', 'bbbwrite row\n', 'test,555,hello\n', '1234\n', 'aaa\n', 'bbb']
文件内容变为:
test,555,hello
1234
aaa
bbbwrite row
test,555,hello
1234
aaa
bbb