我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
当前回答
使用Python 3和Python 2.6+语法:
with open(filepath, 'w') as file_handler:
for item in the_list:
file_handler.write("{}\n".format(item))
这是平台独立的。它还使用换行符结束最后一行,这是UNIX的最佳实践。
从Python 3.6开始,"{}\n".format(item)可以用f-string替换:f"{item}\n"。
其他回答
更简单的是:
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))
记住,项目列表占用内存,所以要注意内存消耗。
设avg为列表,则:
In [29]: a = n.array((avg))
In [31]: a.tofile('avgpoints.dat',sep='\n',dtype = '%f')
您可以根据自己的需求使用%e或%s。
我想你在寻找这样的答案。
f = open('output.txt','w')
list = [3, 15.2123, 118.3432, 98.2276, 118.0043]
f.write('a= {:>3d}, b= {:>8.4f}, c= {:>8.4f}, d= {:>8.4f}, e=
{:>8.4f}\n'.format(*list))
f.close()
我最近发现Path很有用。帮助我绕过不得不打开('file')作为f,然后写入文件。希望这对某些人有用:)。
from pathlib import Path
import json
a = [[1,2,3],[4,5,6]]
# write
Path("file.json").write_text(json.dumps(a))
# read
json.loads(Path("file.json").read_text())
使用循环:
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
如果您热衷于单个函数调用,至少要删除方括号[],以便每次生成一个要打印的字符串(genexp而不是listcomp)——没有理由占用物化整个字符串列表所需的所有内存。