python统计csv行数,有数据的行数(我使用csv打开,看有100001行,但是统计就会多出,显示有171568行)

以下是我尝试的代码,但是这一方法下,每一个csv的行数很多(打开比对过),不知道是出于什么原因,这样计数会多出很多条数据
示例
实际 下面代码统计
文件1 100001 170586
文件2 100001 122563

import glob
import pandas as pd
files = glob.glob('E:/wd'+'//.csv')
def file_len(fname):
with open(fname, encoding='ansi') as f:
for i, l in enumerate(f):
pass
return i + 1
d = {f: file_len(f) for f in files}
df = pd.Series(d).rename('rows').rename_axis('filename').reset_index()
df.to_csv('E:/w/filec.csv', index=0, encoding='ansi')
请问该如何统计出正确的行数呢,感谢解答

望采纳

import pandas as pd
data = pd.read_csv('路径')
len(data)

输出结果为数据行数,不包括表头

https://blog.csdn.net/weixin_42349769/article/details/113674608

读取成Data frame然后读取规模不行吗

多试几个方法:
第一个方法
total = sum(1 for line in open(filename))

详解:

open打开csv文件

for循环遍历csv文件的每一行

sum求遍历csv的循环次数的和,即csv行数。

python中如何统计csv行数

第二个方法
total = len(open(filename).readlines())

详解:

open(filename)打开csv文件

readlines读取csv文件所有行,并以列表形式返回。列表中的每一个元素就是csv文件中的一行。

len取得列表长度。

python中如何统计csv行数

第三个方法

with open(filename, 'r') as f:

 

   csv_reader = csv.reader(f)
 

   for row in csv_reader:
 

       count += 1

详解:

open以只读的方式打开csv文件

csv.reader从csv文件中读取的每一行都作为字符串列表返回

for循环遍历csv.reader,以count作为累加器,求得csv文件行数

python中如何统计csv行数

第四个方法

with open(filename) as f:

 

   for i, line in enumerate(f, 1):
 

       count += 1

详解:

使用enumerate() 函数遍历csv文件,在以count作为累加器,求得csv文件行数

python中如何统计csv行数

enumerate() 语法:

enumerate(sequence, [start=0])

参数

sequence -- 一个序列、迭代器或其他支持迭代对象。

start -- 下标起始位置。

返回值

返回 enumerate(枚举) 对象。

最后一个方法没试过:

all_the_text = open('XXX.csv').read( )
n=all_the_text.count(chr(13)+chr(10))-1
print (n)

可能会有空行,计算之前判断一下