Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大型csv文件中损坏的行_Python_Csv - Fatal编程技术网

Python 大型csv文件中损坏的行

Python 大型csv文件中损坏的行,python,csv,Python,Csv,我正在使用python使用csv模块将csv文件中的行提取到列表中。 csv文件相当大,大约45000行,而且似乎有些行已损坏。 当使用python的csv.reader模块时,它只读取大约1000行,然后到达损坏的行并停止读取,甚至没有给出错误消息。 因为文件非常大,所以很难手动更改它。我为第一个损坏的行做了一次,它成功地读取了500多行,然后它显然到达了另一个损坏的行并停止了。 我很高兴能了解如何处理这个问题,因为由于文件的大小(约500 MB),打开和编辑它是不可能的 谢谢。如果可以安全地

我正在使用python使用csv模块将csv文件中的行提取到列表中。 csv文件相当大,大约45000行,而且似乎有些行已损坏。
当使用python的csv.reader模块时,它只读取大约1000行,然后到达损坏的行并停止读取,甚至没有给出错误消息。 因为文件非常大,所以很难手动更改它。我为第一个损坏的行做了一次,它成功地读取了500多行,然后它显然到达了另一个损坏的行并停止了。 我很高兴能了解如何处理这个问题,因为由于文件的大小(约500 MB),打开和编辑它是不可能的

谢谢。

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

例如:

for i, line in enumerate(original_file):
    chunk_file.write(line+'\n')
    if i == 500: break

然后解析
chunk\u文件
,查看解析了多少数据。如果相等,继续;如果没有,它在那里被破坏了。

我建议尝试以下方法:

with open('largeFile.csv', 'r') as csvfile:
    for k, line in enumerate(csvfile):
        row = line.strip().split(',')
        if len(row) != <YourExpectedNumberOfColumns>:
            print(k,row)
打开('largeFile.csv',r')作为csvfile:
对于k,枚举(csvfile)中的行:
行=行.strip().split(',')
如果len(世界其他地区)!=:
打印(k行)

这就有可能打印出有问题的行,这可能有助于集中调试工作。

损坏的性质是什么?你可以发布一个例子行,也许是一些好的?你有什么特别的代码吗?举一个“腐败”行的例子也很好。它以哪种方式腐败?丢失数据?缺少分隔符?您可以共享一些代码吗@user0815他正在使用内置解析器
csv.reader