我正在尝试从特定文件夹中的每个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
答案 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)
它神奇地工作......