Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取csv文件的问题_Python_Python 2.7_Csv_Pythonanywhere - Fatal编程技术网

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(并打印)

使用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(并打印),但它不会在后面的循环中为每一行打印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(数据)
会更整洁吗?