目前,我有一个包含以下内容的列表:
lst = [[1,2],[5,4],[10,9]]
并且我正在尝试将输出格式设置为文本文件的形式
1 2
5 4
10 9
我尝试过:
newfile = open("output_file.txt","w")
for i in range(len(lst)):
newfile.write(i)
newfile.close()
但是我遇到了错误:
TypeError: write() argument must be str, not list
希望对此有所帮助。
答案 0 :(得分:1)
您应该将int值更改为str,并在其中添加换行符char,如下所示:
lst = [[1,2],[5,4],[10,9]]
newfile = open("output_file.txt","w")
for i in lst:
newfile.write(str(i[0]) + ' ' + str(i[1]) + '\n')
newfile.close()
输出文件为:
1 2
5 4
10 9
答案 1 :(得分:1)
您可以改用格式字符串:
lst = [[1,2],[5,4],[10,9]]
with open("output_file.txt","w") as newfile:
for i in lst:
newfile.write('{:<7}{}\n'.format(*i))
答案 2 :(得分:0)
出现错误是因为直接打印列表元素,也许文件的write方法需要将参数作为字符串,并且您直接传递了列表元素。 做一件事明确地将列表中的项目转换为字符串并打印。
newfile = open("output_file.txt","w")
for i in range(len(lst)):
newfile.write(str(i))
newfile.close()
答案 3 :(得分:0)
您可以使用numpy模块将其写入文本文件,如下所示。
import numpy as np
lst = [[1,2],[5,4],[10,9]]
np.savetxt('output_file.txt',lst,fmt='%d')
谢谢
答案 4 :(得分:0)
使用格式字符串将其写入
with open('output.txt', 'w') as f:
for i in lst:
f.write('{}\t{}\n'.format(i[0], i[1]))
(xenial)vash@localhost:~/python/stack_overflow/sept$ cat output.txt 1 2 5 4 10 9