Python如何从csv文件中的第3行读取第2列

时间:2018-05-18 14:19:07

标签: python file csv

我必须解析csv文件,文件中的第一个有用信息位于第3行和第2列。

这是我到目前为止所做的一小部分:

f = open(filename, r)
reader = csv.reader(f, delimeter=';')
i=0
for row in reader:
    if (i == 2):
        useful_data  = row[2]
        break
    else:
        i += 1

但我不喜欢这种方法。任何人都可以提出更好的方法吗?

3 个答案:

答案 0 :(得分:4)

itertools.islice可以简化这里:

with open(filename) as f:
    reader = csv.reader(f, delimiter=';')
    useful_data = next(islice(reader, 2, None))[2]

答案 1 :(得分:2)

而不是for循环,而不是break,而是使用next

对文件进行手动迭代

只需在csv阅读器上使用next跳过尽可能多的行,然后最后一次使用next并选择所需的列:

with open(filename) as f:
    reader = csv.reader(f, delimiter=';')
    # skip 2 rows
    for _ in range(2):
        next(reader)

    useful_data = next(reader)[2]

答案 2 :(得分:0)

你到底不喜欢什么?我认为一个稍微好一点的版本是:

with open(filename, 'r') as f:
    reader = csv.reader(f, delimiter=';')
    for i, row in enumerate(reader):
        if i == 2:
            useful_data = row[2]
            break