Python 2.7 Python:在csv中为多行编写两列
我有两个参数,比如Python 2.7 Python:在csv中为多行编写两列,python-2.7,csv,Python 2.7,Csv,我有两个参数,比如filename和time,我想把它们写在csv文件的一列中。这两个参数位于循环的for中,因此它们的值在每次迭代中都会更改 我当前的python代码如下所示,但生成的csv不是我想要的: import csv import os with open("txt/scalable_decoding_time.csv", "wb") as csv_file: writer = csv.writer(csv_file, delimiter=',') filena
filename
和time
,我想把它们写在csv
文件的一列中。这两个参数位于循环的for
中,因此它们的值在每次迭代中都会更改
我当前的python代码如下所示,但生成的csv不是我想要的:
import csv
import os
with open("txt/scalable_decoding_time.csv", "wb") as csv_file:
writer = csv.writer(csv_file, delimiter=',')
filename = ["one","two", "three"]
time = ["1","2", "3"]
zipped_lists = zip(filename,time)
for row in zipped_lists:
print row
writer.writerow(row)
我的csv
文件必须如下所示。,
必须是测力仪。所以我必须得到两列
one, 1
two, 2
three, 3
我的csv
文件现在显示为下图。数据存储在一列中
你知道怎么解决这个问题吗
好吧,这里的问题是,您使用的是
writerow
而不是writerow
import csv
import os
with open("scalable_decoding_time.csv", "wb") as csv_file:
writer = csv.writer(csv_file, delimiter=',')
level_counter = 0
max_levels = 3
filename = ["one","two", "three"]
time = ["1","2", "3"]
while level_counter < max_levels:
writer.writerow((filename[level_counter], time[level_counter]))
level_counter = level_counter +1
输出:
这是另一种解决方案 将以下代码放入我们将调用的python脚本中
sc-123.py
filename = ["one","two", "three"]
time = ["1","2", "3"]
for a,b in zip(filename,time):
print('{}{}{}'.format(a,',',b))
一旦脚本准备好,就这样运行它
python2 sc-123.py > scalable_decoding_time.csv
您将以您想要的方式格式化结果
one,1
two,2
three,3
它看起来怎么样?实际的问题是什么?仅供参考,如果你想让列对齐,你必须手工操作。@Mad物理学家我添加了一个屏幕截图。嗨@zinon为什么不使用
zip
?@GaurangDeshpande我想没有。可能错误是由writer=csv.writer(csv_文件,分隔符=',')中的delimeter
引起的
?我和你一样,只是在csv
文件的一列中。csv是逗号分隔的文件,对吗?分隔符是,
,它为您提供正确的输出。如果您在excel中检查它,那么可能会有差异。我可以在excel 2016中看到您期望的结果。谢谢您的回复!我发现我笔记本电脑中的分隔符是代码>所以我在我的代码中更改了它,我在excel 2016中得到了与您相同的输出!谢谢你的帮助!!在excel 2013中,分隔符是代码>也是!
one,1
two,2
three,3