csv 文件中的行数

Posted

技术标签:

【中文标题】csv 文件中的行数【英文标题】:Row count in a csv file 【发布时间】:2015-02-14 17:31:33 【问题描述】:

我可能犯了一个愚蠢的错误,但我找不到它在哪里。我想计算我的 。我写了这个,显然没有用:我有row_count = 0,而它应该是 400。干杯。

f = open(adresse,"r")
reader = csv.reader(f,delimiter = ",")
data = [l for l in reader]
row_count = sum(1 for row in reader)

print row_count

【问题讨论】:

Count how many lines are in a CSV Python?的可能重复 这能回答你的问题吗? How to get line count of a large file cheaply in Python? 发生这种情况的原因是读者通过创建data 列表“清空”了自己。 reader 对象提供了一个一次性的 for 循环,一旦你完成了它,它就消失了。这就是 row_count 被读取为 0 的原因:此时阅读器中没有任何内容。 【参考方案1】:
with open(adresse,"r") as f:
    reader = csv.reader(f,delimiter = ",")
    data = list(reader)
    row_count = len(data)

您正在尝试读取文件两次,此时文件指针在保存data 列表后已经到达文件末尾。

【讨论】:

请注意:如果您在阅读器上列出,您将失去其作为生成器的优势。 这会通过创建该列表将大量数据潜在地读入内存(尽管是短暂的)。我认为如果我们想要条目计数,最好只做类似entry_count = sum(1 for row in reader)line_count = sum(1 for line in f) 如果我们想要计算文件中的所有行(包括标题行)。 @Erdős-Bacon 我只是在修复 OP 的代码,但这是正确的【参考方案2】:

首先你必须用 open 打开文件

input_file = open("nameOfFile.csv","r+")

然后使用 csv.reader 打开 csv

reader_file = csv.reader(input_file)

最后可以用'len'指令取行数

value = len(list(reader_file))

总代码是这样的:

input_file = open("nameOfFile.csv","r+")
reader_file = csv.reader(input_file)
value = len(list(reader_file))

记住,如果你想重用csv文件,你必须创建一个input_file.fseek(0),因为当你为reader_file使用一个列表时,它会读取所有文件,并且文件中的指针会改变它的位置

【讨论】:

【参考方案3】:

如果你正在使用 python3 并安装了 pandas 库,你可以使用

import pandas as pd

results = pd.read_csv('f.csv')

print(len(results))

【讨论】:

【参考方案4】:

我会考虑使用生成器。它可以完成这项工作并让您免受任何形式的 MemoryError 的伤害

def generator_count_file_rows(input_file):
    for row in open(input_file,'r'):
        yield row

然后

for row in generator_count_file_rows('very_large_set.csv'):
        count+=1

【讨论】:

【参考方案5】:
# with built in libraries
opened_file = open('f.csv')
from csv import reader

read_file = reader(opened_file)
apps_data = list(read_file)

rowcount = len(apps_data) #which incudes header row

print("Total rows incuding header: " + str(rowcount))

【讨论】:

【参考方案6】:

只需在 Notepad++ 中打开 csv 文件。它立即显示总行数。 :) 要么 在 cmd 提示符下,在命令中提供文件路径和密钥 find \c \v "一些无意义的字符串" Filename.csv

【讨论】:

OP想知道如何修复python脚本。

以上是关于csv 文件中的行数的主要内容,如果未能解决你的问题,请参考以下文章

csv 文件中的行数

csv 文件中的行数

Rspec:测试CSV输出中的行数

Pyspark 的 sqlContext.read.csv() 函数读取的行数比实际 .csv 文件中的行数多

作业-- 统计文本文件中的字符数单词数行数

python中CSV文件的行数错误