问题阅读csv文件
问题描述:
我无法读出保存的CSV与Python:问题阅读csv文件
import csv
with open('blah.csv','rb') as csvfile:
data = csv.reader(csvfile)
row_count = sum(1 for row in data)
print row_count
r = 1
for row in data:
print r
我的问题是,尽管蟒蛇似乎认识到该文件,并认识到ROW_COUNT = 9(并打印此),它不”在后面的循环中为每一行打印r。
此代码正常运行我的电脑上,而不是在云上www.pythonanywhere.com
答
这是因为在以下行 - 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://*.com/questions/11150155/why-cant-i-repeat-the-for-loop-for-csv-reader-python – pvg
顺便说一句,会'row_count = len(data )'更整洁? – hwjp