У меня есть "asin.txt" документ:Python 2: IndexError: список индексов вне диапазона
in,Huawei1,DE
out,Huawei2,UK
out,Huawei3,none
in,Huawei4,FR
in,Huawei5,none
in,Huawei6,none
out,Huawei7,IT
Я открываю этот файл и сделать OrderedDict
:
from collections import OrderedDict
reader = csv.reader(open('asin.txt','r'),delimiter=',')
reader1 = csv.reader(open('asin.txt','r'),delimiter=',')
d = OrderedDict((row[0], row[1].strip()) for row in reader)
d1 = OrderedDict((row[1], row[2].strip()) for row in reader1)
Затем я хочу создать переменные (a, b, c, d), поэтому, если взять первую строку asin.txt
, это должно быть следующим: a = in
; b = Huawei1
; c = Huawei1
; d = DE
. Для этого я использую «для» цикла:
from itertools import izip
for (a, b), (c, d) in izip(d.items(), d1.items()): # here
try:
.......
Он работал раньше, но теперь, по некоторым причинам, он выводит сообщение об ошибке:
d = OrderedDict((row[0], row[1].strip()) for row in reader)
IndexError: list index out of range
Как исправить это?
Похоже, какой-то линии в ваших перерывах файлов, имеет только 0 или 1 поле. – zhangyangyu
Вы проверили, что каждая строка в вашем файле находится в том формате, который вы ожидаете? Легко пустые строки ползать в конце, если вы редактируете файл, например. –