这是将列表写入文件的最干净的方法,因为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 应用程序稍后使用,则应该对列表进行腌制。
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
读回:
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
比较简单的方法是:
with open("outfile", "w") as outfile:
outfile.write("\n".join(itemlist))
您可以使用生成器表达式来确保项目列表中的所有项目都是字符串:
with open("outfile", "w") as outfile:
outfile.write("\n".join(str(item) for item in itemlist))
请记住,所有itemlist
列表都需要在内存中,因此,请注意内存消耗。