首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大型csv文件中的行已损坏

大型csv文件中的行已损坏
EN

Stack Overflow用户
提问于 2013-01-01 23:58:32
回答 2查看 2.3K关注 0票数 0

我正在使用python通过csv模块将csv文件中的行提取到列表中。csv文件相当大,大约有45,000行,其中一些行似乎已损坏。

当使用python的csv.reader模块时,它只读取大约1000行,然后到达损坏的行并停止读取,甚至没有给出错误消息。因为文件非常大,所以很难手动更改它。我对第一个被损坏的行做了一次,它确实设法读取了500多行,然后它显然到达了另一个被损坏的行并停止。我很高兴得到关于如何处理这个问题的想法,因为打开文件和编辑它是不可能的,因为它的大小(~500MB)。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-01-02 00:09:31

如果假设每一行都是一个条目是安全的,那么您可以尝试将文件拆分成大约500行的块,一旦您注意到解析的条目数不是行的数目,就可以检查较小的子集,依此类推。

例如:

代码语言:javascript
运行
复制
for i, line in enumerate(original_file):
    chunk_file.write(line+'\n')
    if i == 500: break

然后解析chunk_file,看看解析了多少数据。如果相等,则继续;如果不相等,则在那里被破坏。

票数 0
EN

Stack Overflow用户

发布于 2017-04-06 09:58:18

我建议尝试一下这样的方法:

代码语言:javascript
运行
复制
with open('largeFile.csv', 'r') as csvfile:
    for k, line in enumerate(csvfile):
        row = line.strip().split(',')
        if len(row) != <YourExpectedNumberOfColumns>:
            print(k,row)

这可能主要是打印出有问题的行,这可能会帮助您集中精力进行调试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14111862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档