這是因爲在以下行 - row_count = sum(1 for row in data)
- 你已經讀遍文件,它已走到了盡頭。所以,當你再試着做 -
for row in data:
print r
這是行不通的,因爲data
文件是在年底。
你可以嘗試的許多事情之一是重新打開文件再次從頭開始閱讀。
示例 -
import csv
with open('blah.csv','rb') as csvfile:
data = csv.reader(csvfile)
row_count = sum(1 for row in data)
print row_count
with open('blah.csv','rb') as csvfile:
data = csv.reader(csvfile)
r = 1
for row in data:
print r
雖然也可以使線的兩個計數和打印行成一個圈狀 -
import csv
with open('blah.csv','rb') as csvfile:
data = csv.reader(csvfile)
row_count = 0
for row in data
row_count += 1
print row
print row_count
你可以做的另一件事是 -
csvfile.seek(0) #to make the file point to the start.
示例 -
import csv
with open('blah.csv','rb') as csvfile:
data = csv.reader(csvfile)
row_count = sum(1 for row in data)
print row_count
csvfile.seek(0)
r = 1
for row in data:
print r
可能的副本http://stackoverflow.com/questions/11150155/why-cant-i-repeat-the-for-loop-for-csv-reader-python – pvg
順便說一句,會'row_count = len(data )'更整潔? – hwjp