<分区>
我想将列表写入 csv 文件的第三列。
list = ['cat', 'dog', 'duck', ..., 'goat']
writer = csv.writer(f)
for val in list:
writer.writerow([val])
但是我得到的输出总是有一行是空的,如下所示。
cat
dog
duck
...
goat
我想知道如何使其正确以及如何将列表放在 csv 的第三列中。
<分区>
我想将列表写入 csv 文件的第三列。
list = ['cat', 'dog', 'duck', ..., 'goat']
writer = csv.writer(f)
for val in list:
writer.writerow([val])
但是我得到的输出总是有一行是空的,如下所示。
cat
dog
duck
...
goat
我想知道如何使其正确以及如何将列表放在 csv 的第三列中。
最佳答案
您可以通过在 writerow() 的列表参数中添加“无”条目来轻松添加空列。一个完整的工作示例如下:
import csv
import tempfile
list = ['cat', 'dog', 'duck', 'goat']
name = None
with tempfile.NamedTemporaryFile('w', delete=False) as f:
writer = csv.writer(f)
for val in list:
writer.writerow([None, None, val])
name = f.name
with open(name, 'r') as f:
contents = f.read()
print(contents)
结果是:
,,cat
,,dog
,,duck
,,goat
为了让数字从零开始而不是空白,你可以这样修改:
import csv
import tempfile
list = ['cat', 'dog', 'duck', 'goat']
name = None
with tempfile.NamedTemporaryFile('w', delete=False) as f:
writer = csv.writer(f)
pos = 0
for val in list:
writer.writerow([str(pos), str(pos+1), val])
pos += 2
name = f.name
with open(name, 'r') as f:
contents = f.read()
print(contents)
print(dir(f))
结果如下:
0,1,cat
2,3,dog
4,5,duck
6,7,goat
关于python - 将列表写入 python 中的 CSV 列时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45874813/