如何获取python中导入的csv文件的行和列?

如何获取python中导入的csv文件的行和列?,python,csv,file,file-handling,stopiteration,Python,Csv,File,File Handling,Stopiteration,我的应用程序有多个csv文件。我试图通过读取csv文件来获取行数和列数。我有两个csv文件,通过参数文件路径发送。第一个文件有5行3列,第二个文件有5行5列。但是使用下面的代码,我得到了第一个4行3列的文件,第二个4行5列的文件。我不明白为什么它会从行数中跳过一行另一方面,如果我先执行行计数代码,然后执行列计数代码,则会出现StopIteration异常。这可能是一个非常简单的问题,但对于我这个Python新手来说,非常感谢任何帮助。谢谢 def read_text_file(file_path

我的应用程序有多个csv文件。我试图通过读取csv文件来获取行数和列数。我有两个csv文件,通过参数文件路径发送。第一个文件有5行3列,第二个文件有5行5列。但是使用下面的代码,我得到了第一个4行3列的文件,第二个4行5列的文件。我不明白为什么它会从行数中跳过一行
另一方面,如果我先执行行计数代码,然后执行列计数代码,则会出现StopIteration异常。
这可能是一个非常简单的问题,但对于我这个Python新手来说,非常感谢任何帮助。谢谢

def read_text_file(file_path):
    with open(file_path, 'r') as f:
        reader = csv.reader(f)
        col_count = len(next(reader))
        print(col_count)       
        row_count = len(list(csv.reader(f)))
        print(row_count)

读取CSV并将其存储在列表中

reader = list(csv.reader(f))
这将把csv数据转换成2D数组,然后您可以使用
len()
函数

import numpy
numpy.genfromtxt('path/to/your/csv/file.csv').shape

应该告诉您作为元组的行数和列数。

问题在于文件有位置的概念。当你打开它时,文件会被放在开头。让我们看看你的资料来源:

def read_text_file(file_path):
    with open(file_path, 'r') as f:           // file is opened, pointing at first char
        reader = csv.reader(f)                // reader will use file
        col_count = len(next(reader))         // next(reader) READS FIRST ROW...
        print(col_count)                      // file is now after the first row!
        row_count = len(list(csv.reader(f)))  // read remaining rows
        print(row_count)                      // number of rows minus 1...
您应该使用
row\u count=1+len(list(csv.reader(f))
添加已经读取的第一行