从许多csv文件中读取特定行,python

时间:2017-03-06 20:11:53

标签: python csv

我正在尝试从特定文件夹中的每个csv文件中打印出特定行(第5行)。出于某种原因,它会为第一个文件返回正确的第5行,但之后会混淆所有其他文件。我认为它在某种循环中起作用,但我无法弄清楚为什么/什么/如何:

    for file in files:
        j = 1
        with open(file,'rU') as csvfile:
            csv_reader = csv.reader(csvfile, delimiter = ',', quotechar ='|')
            for row in csv_reader:
                if j is 5:
                    print row
                j += 1

2 个答案:

答案 0 :(得分:1)

for file in files:
    with open(file, newline='') as f:
        r = csv.reader(csvfile, delimiter = ',', quotechar ='|')
        for i, row in enumerate(r, start=1):
            if i == 5:
                print(row)
                break

不要使用j is 5。使用enumerate手动跟踪计数器,更难犯错误。

答案 1 :(得分:0)

好的,我改变了

csv_reader = csv.reader(csvfile, delimiter = ',', quotechar ='|')

csv_reader = csv.reader(csvfile)

它神奇地工作......