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 文件中的行数的主要内容,如果未能解决你的问题,请参考以下文章