IndexError:读取 python 的 CSV 文件中的列表索引超出范围

2024-03-24

我有一个包含 30000000 个条目的 csv 文件。 像这样

കൃഷി 3
വ്യാപകമാകുന്നു 2
നെല്‍കൃഷി 2
വെള്ളം 2
നെല്ല് 2
മാത്രമേ 2
ജല 2

当我尝试颠倒词序时 我收到以下错误

Traceback (most recent call last):
  File "/home//grpus/dg.py", line 8, in <module>
    writer.writerow((row[1], row[0]))
IndexError: list index out of range

这是代码:

import csv

with open('s.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='\t')
    with open("revmal.txt", "w") as o:
        writer = csv.writer(o, delimiter='\t')
        for row in reader:
            writer.writerow((row[1], row[0]))

Edit

 writer.writerow(row[::-1])

当我尝试修复它时

如何修复这个错误?

 Traceback (most recent call last):
      File "/home/grpus/dg.py", line 7, in <module>
        for row in reader:
    Error: field larger than field limit (131072)

文件大小为 1.4 GB

wc -L s.csv

936

{if(length($0)>max){max=length($0);maxline=$0}}END{print maxline} This produced 

���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ���������������������������������������������� ����������������!�1、 186 个字符


您至少有一行没有由制表符分隔的 2 列。例如,空行,或者如果您的格式实际上不使用制表符。

您有两个选择:

  1. 跳过列数少于您需要的行:

    for row in reader:
        if len(row) < 2:
            continue
        writer.writerow((row[1], row[0]))
    
  2. 修复分隔符以匹配实际文件内容:

    reader = csv.reader(f, delimiter=' ')
    

    你可以使用csv.Sniffer() class http://docs.python.org/2/library/csv.html#csv.Sniffer如果您有多个文件要处理,并且这些文件并非全部遵循相同的 CSV 方言,请尝试自动选择分隔符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IndexError:读取 python 的 CSV 文件中的列表索引超出范围 的相关文章

随机推荐