我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
当前回答
这个逻辑首先将list中的项转换为字符串(str)。有时列表包含一个元组,如
alist = [(i12,tiger),
(113,lion)]
这个逻辑将把每个元组写入一个新行。我们可以在读取文件时加载每个元组时使用eval:
outfile = open('outfile.txt', 'w') # open a file in write mode
for item in list_to_persistence: # iterate over the list items
outfile.write(str(item) + '\n') # write to the file
outfile.close() # close the file
其他回答
你打算怎么处理这个文件?这个文件是否存在于人类,或其他具有明确互操作性要求的程序?
如果您只是试图将列表序列化到磁盘,以便稍后由同一python应用程序使用,则应该pickle该列表。
import pickle
with open('outfile', 'wb') as fp:
pickle.dump(itemlist, fp)
再读一遍:
with open ('outfile', 'rb') as fp:
itemlist = pickle.load(fp)
设avg为列表,则:
In [29]: a = n.array((avg))
In [31]: a.tofile('avgpoints.dat',sep='\n',dtype = '%f')
您可以根据自己的需求使用%e或%s。
在Python 3中,你可以使用print和*进行参数解包:
with open("fout.txt", "w") as fout:
print(*my_list, sep="\n", file=fout)
我建议这个解决方案。
with open('your_file.txt', 'w') as f:
list(map(lambda item : f.write("%s\n" % item),my_list))
在一般情况下
下面是writelines()方法的语法
fileObject.writelines( sequence )
例子
#!/usr/bin/python
# Open a file
fo = open("foo.txt", "rw+")
seq = ["This is 6th line\n", "This is 7th line"]
# Write sequence of lines at the end of the file.
line = fo.writelines( seq )
# Close opend file
fo.close()
参考
http://www.tutorialspoint.com/python/file_writelines.htm