python - 只从 CSV 阅读器中解压前几列?

标签 python csv iterable-unpacking

读取 CSV 文件时:

with open("foo.csv") as foo:
    for (a,b) in csv.reader(foo):
        ....

我得到了错误

ValueError: too many values to unpack

当文件包含多于两列时。

有没有办法解包前两列并忽略其余列?

我觉得我可以

with open("foo.csv") as foo:
    for row in csv.reader(foo):
        a,b = row[0:2]
        ....

但这看起来很丑。

附言。如果重要的话,我正在使用 python2。

最佳答案

使用生成器:

with open("foo.csv") as foo:
    for a,b in (r[0:2] for r in csv.reader(foo)):
         ...

这更清楚地显示了您的意图。它基本上等同于您“丑陋”的做法,但看起来更容易。

关于python - 只从 CSV 阅读器中解压前几列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24659006/

相关文章:

Python:属性和 setter

javascript - 无法在 node.js 中要求 csv lib

python - 将包含元组条目的 DataFrame 解压到单独的 DataFrame 中

python - 具有可变数量元素的附加拆包概括 (PEP 448)

java - CSV 无法使用outputStreamWriter 正确创建

python - 如何从文件中读取带有字符串键和元组值的字典?

python - QPushButton FocusIn 产生哪个信号?

python - 如何将show命令的输出发送到Robot框架的自定义库?

python - Heroku 发布阶段命令未执行

Python 读取 csv 以听写引号丢失