2015-06-02 2 views
-4

Я работаю с файлом tabel.txt, и у меня возникают проблемы с этим. Я хочу, чтобы отобразить данные из четвертого столбца, но я получаюСписок указателей за пределами диапазона, Кто-нибудь знает?

error: list index out of range 

Может кто-нибудь помочь мне с этим Picture of this tabel.txt

f = open("tabel.txt", 'r') 

for line in f: 

a=line.split("\t")  
    print(a[3])  
+3

Одна из линий не имеет 3 колонки и, следовательно, вызывает исключение. Бьюсь об заклад, это последний, у которого только строка. TADA! – ElmoVanKielmo

+0

Вы раскалываете вкладку, так что, возможно, не 3 столбца? третий столбец будет [2] в любом случае. –

+1

@ElmoVanKielmo это 4 колонки, которые ему не хватает ... – omerbp

ответ

0

вы можете сделать это:

f = open("tabel.txt", 'r') 
for line in f: 
    a=line.split("\t") 
    if len(a)>3: 
     print(a[3])  
    else: 
     print a 

Таким образом, вы можете увидеть в чем проблема в этой строке. Как сказано в одном из комментариев, 99% это последняя строка.

+0

@karlfel, если это то, что вы искали, не стесняйтесь принимать ... :) – omerbp

0

Как уже отмечалось - скорее всего, в какой-то момент вам не хватает 4-й колонны. Хорошая практика здесь будет использовать try..except, если вы не уверены в ваших данных:

f = open("tabel.txt", 'r') 
i = 0 
for line in f: 

    a=line.split("\t") 
    try: 
     print(a[3]) 
    except IndexError: 
     print("Empty field at line %s" % str(i))  
    i += 1 
+1

это 4-я колонна, которой он не хватает – omerbp

+0

Спасибо, исправлено для правда: D – konart