【发布时间】:2017-12-11 10:45:04
【问题描述】:
我是 Python 新手。我正在尝试在 CSV 文件中写入数字。第一个数字构成行的第一个元素。第二个数字第二个,然后应该开始一个新行。但是,我的代码的工作方式不是将第二个元素添加到同一行,而是创建一个新行。
比如我想要的是:
a1,b1
a2,b2
但我得到的是:
a1
b1
a2
b2
我使用循环将值连续写入 CSV 文件:
n = Ratio # calculated in each loop
with open('ex1.csv', 'ab') as f:
writer = csv.writer(f)
writer.writerow([n])
...
m = Ratio2 # calculated in each loop
with open('ex1.csv', 'ab') as f:
writer = csv.writer(f)
writer.writerow([m])
我希望结果格式为
n1,m1
n2,m2
【问题讨论】:
-
然后将
n和m连接在一起,即writer.writerow([n, m]) -
您可能需要将分隔符指定为','
-
Clomplete minimal example 将有助于更轻松地重现您的问题。
-
您每次都打开文件并附加到它 - 一旦退出循环就打开它。将您所有的
ns 收集到您要写入的每一行的列表中,一旦该行完全在列表中,请使用writer.writerow( yourList )- 它会自动写入列表的每个元素以及其后面的分隔符。