用Python将列表写入文件并加入换行
我该怎么把一个列表写入文件呢?writelines()
这个方法不会自动加上换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
26 个回答
441
更简单的写法是:
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
会占用内存,所以要注意内存的使用情况。
501
你打算怎么处理这个文件?这个文件是给人类看的,还是给其他程序用的,有明确的互操作性要求呢?
如果你只是想把一个列表保存到磁盘,以便以后在同一个Python应用中使用,那么你应该使用pickle来保存这个列表。
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
要把它读回来:
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
1305
使用循环:
with open('your_file.txt', 'w') as f:
for line in lines:
f.write(f"{line}\n")
对于 Python 版本低于 3.6:
with open('your_file.txt', 'w') as f:
for line in lines:
f.write("%s\n" % line)
对于 Python 2,你也可以使用:
with open('your_file.txt', 'w') as f:
for line in lines:
print >> f, line
如果你想用一个函数来完成,至少要去掉方括号 []
,这样打印的字符串就会一个一个生成(用生成器表达式而不是列表推导式)——这样做的好处是不会占用太多内存来存储整个字符串列表。