好的,我有一个程序输出包含整数的元组,并将它们附加到这样的列表中:
[(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()函数来尝试将元组更改为字符串或值列表中的列表。有谁知道如何解决这个问题?非常感谢。
答案 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...)