Python 读取csv文件的问题
使用python读取保存的csv时遇到问题:Python 读取csv文件的问题,python,python-2.7,csv,pythonanywhere,Python,Python 2.7,Csv,Pythonanywhere,使用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 我的问题是,尽管python似乎能识别文件并识别行数=9(并打印)
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
我的问题是,尽管python似乎能识别文件并识别行数=9(并打印),但它不会在后面的循环中为每一行打印r
这段代码在我的计算机上正确运行,但在www.pythonanywhere.com上的云中运行不正确,这是因为在下面的行中-
row\u count=sum(数据中的row为1)
-您已经阅读了该文件,并且该文件已经结束。所以当你再次尝试做-
for row in data:
print r
它不起作用,因为数据文件位于末尾
您可以尝试的许多方法之一是重新打开文件,以便从头开始读取
范例-
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 = sum(1 for row in data)
print row_count
csvfile.seek(0)
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
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 = sum(1 for row in data)
print row_count
csvfile.seek(0)
r = 1
for row in data:
print r
顺便问一下,row\u count=len(数据)
会更整洁吗?