python - 将列表写入 python 中的 CSV 列时出错

标签 python 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/

相关文章:

Ruby CSV 'illegal quoting' 即使引号被转义

python - 将数据附加到list时出错。

csv - 如何通过组合输入 csv 的两个字段/列在 logstash 中生成@timestamp

python - 使用 python 请求传递 csrftoken 使用隐藏的输入类型

python - 如何在不改变递归限制的情况下递归地将数字1000000次加1?

python - Django 按日期分组和每个类别的计数

python - 如何使用 python subprocess.call,将 stdout 的副本发送到日志文件,同时检测第一个命令的结果

python - 将数据帧转换为长的、保留索引的列

linux - 从多个 .tar.gz 文件中提取特定文件名以构建一个 .csv 文件

delphi - 用 Delphi 处理 CSV 文件