我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:
f.writelines([f"{line}\n" for line in lines])
当前回答
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
f = open('poem.txt', 'w') # open for 'w'riting
f.write(poem) # write text to file
f.close() # close the file
How It Works: First, open a file by using the built-in open function and specifying the name of the file and the mode in which we want to open the file. The mode can be a read mode (’r’), write mode (’w’) or append mode (’a’). We can also specify whether we are reading, writing, or appending in text mode (’t’) or binary mode (’b’). There are actually many more modes available and help(open) will give you more details about them. By default, open() considers the file to be a ’t’ext file and opens it in ’r’ead mode. In our example, we first open the file in write text mode and use the write method of the file object to write to the file and then we finally close the file.
上面的例子来自Swaroop C H编写的《A Byte of Python》一书。 swaroopch.com
其他回答
更简单的是:
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))
记住,项目列表占用内存,所以要注意内存消耗。
使用numpy。Savetxt也是一个选项:
import numpy as np
np.savetxt('list.txt', list, delimiter="\n", fmt="%s")
序列化列表到文本文件与逗号分隔值
mylist = dir()
with open('filename.txt','w') as f:
f.write( ','.join( mylist ) )
在一般情况下
下面是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
我最近发现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())