python筛选csv列中字符大于__csv。错误:字段大于字段限制(131072) - python

在读取含有大字段的CSV文件时遇到_csv.Error: field larger than field limit (131072) 错误。可以使用csv.field_size_limit()设置更大的限制,如sys.maxsize。当遇到OverflowError,可以通过递减maxInt来避免,直至找到合适的限制。确保正确处理大字段以避免数据丢失。
摘要由CSDN通过智能技术生成

我有一个脚本在具有很大字段的csv文件中读取:

# example from http://docs.python.org/3.3/library/csv.html?highlight=csv%20dictreader#examples

import csv

with open('some.csv', newline='') as f:

reader = csv.reader(f)

for row in reader:

print(row)

但是,这会在某些csv文件上引发以下错误:

_csv.Error: field larger than field limit (131072)

如何分析具有巨大字段的csv文件?跳过具有巨大字段的行不是一种选择,因为需要在后续步骤中分析数据。

参考方案

csv文件可能包含非常大的字段,因此请增加field_size_limit:

import sys

import csv

csv.field_size_limit(sys.maxsize)

sys.maxsize适用于Python 2.x和3.x。 sys.maxint仅适用于Python 2.x(SO: what-is-sys-maxint-in-python-3)

更新资料

正如Geoff指出的那样,上面的代码可能会导致以下错误:OverflowError: Python int too large to convert to C long。

为了避免这种情况,您可以使用以下快速而又肮脏的代码(该代码应该在使用Python 2和Python 3的每个系统上都可以使用):

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值