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