【问题标题】:parse a csv file by column and store in list按列解析csv文件并存储在列表中
【发布时间】:2014-07-04 21:25:16
【问题描述】:

我想编写一个接受文件名、列号的函数。这将从 csv 文件中读取并返回列表中指定列的值。我需要用 0 替换空点并在它们存在时跳过标题。我需要一些帮助才能让它工作。谢谢

【问题讨论】:

  • Python 为此提供了一个 csv 模块。看看吧!

标签: python csv


【解决方案1】:

应该这样做

import csv

def get_column(filename, n, header=True):
    with open(filename, 'r') as csvfile:
        rdr = csv.reader(csvfile)
        # skip one row if header is True
        if header:
            next(rdr, None)

        # take only the rows where the field exists
        l = [ row[n] for row in rdr if len(row) > n]
    return l

列从 0 开始编号,即get_column("mycsv.csv", 0) 将返回第 1 列的内容。

上面的代码只是忽略了所有没有列n 的行。如果您希望它填写默认的 insted,则将列表推导替换为:

l = [ row[n] if len(row) > n else None for row in rdr ]

当然,您可以将None 更改为您需要的任何内容。

最安全的选择就是使用:

l = [ row[n] for row in rdr ]

因为如果该字段连续丢失,它将引发异常。

【讨论】:

    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2016-01-05
    • 2023-01-19
    • 2015-10-13
    • 1970-01-01
    • 2017-09-26
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多