Python 3 - 将包含整数元组的列表写入CSV

时间:2017-02-25 01:34:55

标签: python python-3.x csv

好的,我有一个程序输出包含整数的元组,并将它们附加到这样的列表中:

[(0,98,7), (437, 563, 128), (82, 45, 221)...]

我想将元组写入一个带有.write()函数的文件,其中“values”作为元组存储的列表:

output=open("output.txt","w")
for v in range(len(values)):
    print(values[v]) #so it prints each value in the shell for error check
    output.write(values[v])

预期结果是一个文本文件,其内容如下:

0,98,7
437, 563, 128
82, 45, 221
...

问题在于它说它无法将元组写入文件;它要求一个字符串。我试图使用.join()函数和list()函数来尝试将元组更改为字符串或值列表中的列表。有谁知道如何解决这个问题?非常感谢。

2 个答案:

答案 0 :(得分:2)

这正是csv模块的用途:

import csv

with open('output.txt','w',newline='') as fou:
  cw = csv.writer(fou)
  cw.writerows(values)

答案 1 :(得分:0)

看到某些人已经以csv方式显示,这里没有。

s = [(0,98,7), (437, 563, 128), (82, 45, 221)]
with open('out.txt', 'w') as f:
    for e in s:
        f.write('%s\n' % ','.join(str(n) for n in e))

只需在循环中编写em即可。传递给join的集合中的每个元素都应该是一个字符串,所以转换每个值然后使用join make逗号分隔的行。

结果

ubuntu@ubuntu:~$ cat out.txt
0,98,7
437,563,128
82,45,221

请注意,输出中的逗号后面不一定有空格。如果让我的出局像第一线,没有他们。如果您需要,只需更改加入字符串','.join(etc...) => ', '.join(etc...)