Python 文件操作

Submitted by Lizhe on Tue, 05/09/2017 - 15:10

大多数情况下file()和open()可以互换

要一次性读取全部内容可以使用,如果不使用rsstrip()的话会发现每行输出之间会有一个空行,这是因为line本身带有空行+print()函数产生的空行

file = open("data.txt");
alllines = file.readlines();
for line in alllines:
    print(line.rstrip());
file.close();

虽然理论上只要内存够大,python可以直出文件的所有内容,不过还是推荐使用迭代器

file = open("data.txt");
for line in file:
    print(line.rstrip());
file.close();

加上try finally的话长成这样

try:
    file = open("data.txt");
    for line in file:
        print(line.rstrip());
finally:
    file.close();

使用with as的话可以避免忘记close

with所求值的对象必须有一个__enter__()方法,一个__exit__()方法

类似java的一种接口,使用过后对象会被自动释放

with open("data.txt") as file:
    for line in file:
        print(line.rstrip());
 

拷贝文件性能受影响最小(直接call操作系统命令)但是兼容性最差的方法是system包

import os;
os.system ("copy %s %s" % ("data.txt", "data.txt2"));
os.system ("dir");