由于writelines()
不插入换行字符,这是否是将列表写入文件的最干净的方法?
file.writelines(["%s\n" % item for item in list])
似乎应该有一个标准的方法......
你可以使用一个循环。
with open('your_file.txt', 'w') as f:
for item in my_list:
f.write("%s\n" % item)
在Python 2中,您还可以使用
with open('your_file.txt', 'w') as f:
for item in my_list:
print >> f, item
如果你热衷于一个函数的调用,至少要把方括号[]
去掉,这样要打印的字符串就会被一个一个地制造出来 (一个genexp而不是一个listcomp) -- 没有理由占用所有的内存来实现整个字符串的列表。
你打算用这个文件做什么?这个文件是为人类,还是为其他有明确互操作性要求的程序存在的?
如果你只是想把一个列表序列化到磁盘上,以便以后被同一个 python 程序使用,你应该 pickleing 这个列表。
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
要把它读回来。
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)