0

是否可以让 python 只读取文件中选定的行?

假设我有一个 CSV 文件,文件由分隔,tab第三是“a”、“b”或“c”。我想要一个列表理解(或生成器,没关系),它只会返回文件中选择第一列的那些行

以下引发语法错误:

lines = [tmp = line.rstrip().split(separator_column) for line in source if tmp[2] == 'a']

是否有可能以比 for 循环更 Pythonic 的方式来完成它?所谓的更多 pythonic 方式正在以 C 的速度工作——它们比基本的 Python 指令更快——这就是我问的原因。

4

1 回答 1

5

使用csv模块:

import csv
with open("your/file.csv", ...) as source:
    reader = csv.reader(source, delimiter='\t')
    selection = [row for row in reader if row[2] == 'a']
于 2013-10-07T12:27:25.253 回答