我这里有两个列表:
a=["rate","date","population"]
b=[4,2/3/2021,1523]
,我需要将这两个列表输出到像这样的txt文件中:
rate date population
4 2/3/2021 1523
两个单词之间的空格是制表符,我尝试使用像
这样的代码with open("data.txt","w") as outfile:
zipped = zip(a, b)
set1=[]
for i, r in zipped:
set1.append(i)
set1.append(r)
outfile.write(str(set1))
,但它不起作用,我不知道如何把制表符选择到它。需要帮助!谢谢你!
您可以使用csv
模块的DictWriter
来编写以制表符分隔的文件。为此,可以将分隔符指定为制表符。
import csv
filename = "output.txt"
a = ["rate","date","population"]
b = [4,2/3/2021,1523]
values = dict(zip(a,b))
with open(filename, 'wb') as f:
writer = csv.DictWriter(f, delimiter='t', fieldnames=a)
writer.writeheader()
writer.writerows(values)
您可以尝试使用t
:
a=["rate","date","population"]
b=["4","2/3/2021","1523"]
with open("data.txt","w") as outfile:
outfile.write('t'.join(a)+'n')
outfile.write('t'.join(b))
您可以使用下面的代码片段实现您的结果
a=["rate","date","population"]
b=['4','2/3/2021','1523']
result = 't'.join(a) + 'n' + 't'.join(b)
with open('result.txt', 'w') as f:
f.writelines(result)
a=["rate","date","population"]
b=[4,"2/3/2021",1523]
with open("data.txt","w") as outfile:
for x in a:
outfile.write(f'{x}t')
outfile.write('n')
for x in b:
outfile.write(f'{x}t')
outfile.write('n')
我使用csv
模块:
import csv
with open("data.txt", "w") as outfile:
writer = csv.writer(outfile, delimiter='t')
writer.writerow(a)
writer.writerow(b)
edit:如果你想修复你的代码而不使用csv
模块:
with open("data.txt", "w") as outfile:
outfile.write('t'.join(a) + 'n')
outfile.write('t'.join(b) + 'n')
't'.join(a)
是str
的一个有用函数,它将join
将a
中的每个值与t
分开:
>>> 't'.join(["if", "this", "isn't", "nice", "what", "is?"]
"iftthistisn'ttnicetwhattis?"
>>> print(_)
if this isn't nice what is?