如何在Python CSV模块中查找特定行

时间:2015-06-08 15:25:39

标签: python csv

我需要找到第4列到CSV文件末尾的第三行。我该怎么办?我知道我可以找到第4栏中的值     行[3] 但我如何具体获得第三行?

4 个答案:

答案 0 :(得分:3)

您可以将csv reader对象转换为列表列表......行存储在列表中,列表中包含列的列表。

所以:

csvr = csv.reader(file)
csvr = list(csvr)
csvr[2]     # The 3rd row
csvr[2][3]  # The 4th column on the 3rd row.
csvr[-4][-3]# The 3rd column from the right on the 4th row from the end

答案 1 :(得分:1)

您可以使用itertools.islice提取所需的数据行,然后将其编入索引。

请注意,行和列的编号为零,而不是一个。

import csv
from itertools import islice

def get_row_col(csv_filename, row, col):
    with open(csv_filename, 'rb') as f:
        return next(islice(csv.reader(f), row, row+1))[col]

答案 2 :(得分:0)

你可以保留一个计数器来计算行数:

counter = 1
for row in reader:
    if counter == 3:
        print('Interested in third row')
    counter += 1

答案 3 :(得分:0)

这是一个非常基本的代码,可以完成这项任务,你可以很容易地用它来创建一个函数。

import csv

target_row = 3
target_col = 4

with open('yourfile.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile)
    n = 0
    for row in reader:
        if row == target_row:
            data = row.split()[target_col]
            break

print data