我如何写一个列表文件?writelines()不插入换行符,所以我需要这样做:

f.writelines([f"{line}\n" for line in lines])

当前回答

你还可以通过以下步骤:

例子:

my_list=[1,2,3,4,5,"abc","def"]
with open('your_file.txt', 'w') as file:
    for item in my_list:
        file.write("%s\n" % item)

输出:

在your_file.txt中,项目的保存方式如下:

1

2

3

4

5

abc

def

您的脚本也按上述方式保存。

否则,你可以用泡菜

import pickle
my_list=[1,2,3,4,5,"abc","def"]
#to write
with open('your_file.txt', 'wb') as file:
    pickle.dump(my_list, file)
#to read
with open ('your_file.txt', 'rb') as file:
    Outlist = pickle.load(file)
print(Outlist)

输出: [1,2,3,4,5, 'abc', 'def']

它保存转储列表,就像一个列表,当我们加载它时,我们能够读取。

同样由simplejson可能输出与上面相同的结果

import simplejson as sj
my_list=[1,2,3,4,5,"abc","def"]
#To write
with open('your_file.txt', 'w') as file:
    sj.dump(my_list, file)

#To save
with open('your_file.txt', 'r') as file:
    mlist=sj.load(file)
print(mlist)

其他回答

我想你在寻找这样的答案。

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()

在Python 3中,你可以使用print和*进行参数解包:

with open("fout.txt", "w") as fout:
    print(*my_list, sep="\n", file=fout)
file.write('\n'.join(list))

你为什么不试试

file.write(str(list))
with open ("test.txt","w")as fp:
   for line in list12:
       fp.write(line+"\n")