用python编写输出文本文件

时间:2018-09-21 05:17:37

标签: python

目前,我有一个包含以下内容的列表:

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

希望对此有所帮助。

5 个答案:

答案 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