大多数情况下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”); |