如何获取python中导入的csv文件的行和列?
我的应用程序有多个csv文件。我试图通过读取csv文件来获取行数和列数。我有两个csv文件,通过参数文件路径发送。第一个文件有5行3列,第二个文件有5行5列。但是使用下面的代码,我得到了第一个4行3列的文件,第二个4行5列的文件。我不明白为什么它会从行数中跳过一行如何获取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
另一方面,如果我先执行行计数代码,然后执行列计数代码,则会出现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))
添加已经读取的第一行