我正在尝试写入csv文件,我有一个我想写的硬编码标题:
head = ["Q151", "item time", "deliberativness", "deliberativness time",
"Q153", "item time", "deliberativness", "deliberativness time"]
但是当我运行csv编写器时,它会将每个字符串插入到不同的列中,并将列表中的每个项目插入到不同的行中。所以我得到了
Q 1 5 1
i t e m t i m e
而不是Q151 item time ...
with open('some.csv', 'wb') as f:
writer = csv.writer(f)
for r in head:
writer.writerow(r)
我在python docs中使用了一个简单的writer
。我做错了什么?
除了上面说的Q151项目时间以外的结果...
答案 0 :(得分:1)
您可以使用此代码
with open('some.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(first_row)
Writer迭代您的变量并将每个元素写入下一个单元格。 当你给它字符串值时,writer会迭代它。 所以要编写所有行,你可以添加一个循环。
with open('some.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(first_row)
list_of_rows = [['1', '2', '3'], ]
for row in list_of_rows:
writer.writerow(row)
# but better to use writerows
writer.writerows(list_of_rows)
答案 1 :(得分:0)
你做错了。当你有一个列表/行列表时,你可以使用for循环,并且你想将它们写入你的文件中:
with open('some.csv', 'wb') as f:
writer = csv.writer(f, fieldnames=head)
writer.writeheader()