当前位置: 首页 > 知识库问答 >
问题:

使用python查找大型.csv文件中的行数[duplicate]

龚迪
2023-03-14

我正在处理非常大的.csv文件,并且正在尝试查找文件中的行数以及其他事情,例如解析为json等。

我的问题是如何克服csv库的限制,因为我不断收到以下错误。

我提供了一个在python3中工作的示例程序,它将返回csv文件中的行数。

 import csv

    input = 'large-input.csv'
    with open(input ,"r") as f:
        reader = csv.reader(f,delimiter = ",")
        data = list(reader)
        row_count = len(data)
        print(row_count)

但是,当运行1.5GB csv文件时,我仍然会收到这个错误。

Traceback (most recent call last):
  File "csv-len.py", line 6, in <module>
    data = list(reader)
_csv.Error: field larger than field limit (131072)

在这个问题上所做的任何工作都是非常值得赞赏的。谢谢!

共有1个答案

皇甫德庸
2023-03-14

CSV通常是用换行符分隔的,因此通过CSV解析器运行它,只计算行数可能比只计算行数效率低。

这样会快得多。如果需要,可以为标题减去一行。

def row_count(input):
    with open(input) as f:
        for i, l in enumerate(f):
            pass
    return i
 类似资料:
  • 我使用Dask读取2.5GB csv文件,Python给了我错误。这是我写的代码: 以下是我从Python得到的错误: dask_df=df1.read_csv('3SPACK_N150_7Ah_压力分布研究_Data_Matrix.csv')) 文件“C:\ProgramData\Anaconda3\lib\site packages\dask\dataframe\io\csv.py”,第645

  • 由于多值字段和维度使用报价,csv读取器读取此文件失败。我的函数(上面代码中的函数f)如果那个逗号在属于同一字段的两个数据之间,就用分号代替逗号,如果那个引号是维度的东西,就用'inch'代替。

  • 问题内容: 我正在使用Python脚本处理大型CSV文件(数以10M行的GB数)。 这些文件具有不同的行长,并且无法完全加载到内存中进行分析。 每行由脚本中的一个函数分别处理。分析一个文件大约需要20分钟,并且看来磁盘访问速度不是问题,而是处理/函数调用。 代码看起来像这样(非常简单)。实际的代码使用Class结构,但这是相似的: 鉴于计算需要共享的数据结构,使用多核在Python中并行运行分析的

  • 问题内容: 我只想删除第三行中值为‘0’的行。数据示例如下: 因此,第一行将需要删除,而第二行将保留。 到目前为止,我所拥有的如下: 任何帮助都会很棒 问题答案: 你很亲密 目前,您将整数与进行比较,然后将其与字符串进行比较。当您从文件中读取数据时,它是一个字符串而不是整数,因此这就是您的整数检查当前失败的原因: 另外,您可以使用关键字使当前代码略显pythonic,从而减少代码中的行,并且可以省

  • 我正在读麦金尼的数据分析书,他共享了150MB文件。虽然这个主题已经在进度条上进行了广泛的讨论,而下载文件超文本传输协议与请求,我发现在接受的答案中的代码抛出一个错误。我是初学者,所以我无法解决这个问题。 我想下载以下文件: 以下是没有进度条的代码: 这很有效,但是因为没有进度条,我想知道发生了什么。 下面是通过http下载带有请求的文件时从进度条改编的代码,以及如何使用python下载带有请求的

  • 我从Google Bigquery中提取了一个2列1000万行的。csv文件。 我已经在本地下载了一个大小为170MB的.csv文件,然后将文件上传到Google Drive,我想使用pandas.read_csv()函数将其读入我的Jupyter笔记本中的pandas DataFrame。 这是我使用的代码,有我想读的特定文件ID。