IndexError: индекс индекса вне диапазона чтения / записи из / в файл

У меня есть этот скрипт на Python 2.6 с ОС RHEL:

import csv def write_cols(data): col_spacer = " " # added between columns widths = [0] * len(data[0]) for row in data: widths[:] = [max(widths[index], len(str(col))) for index, col in enumerate(row)] return [col_spacer.join("{0:<{1}}".format(col, width=widths[index]) for index, col in enumerate(row)) for row in data] with open('pathtofile/input.csv', 'rb') as f_input: with open('pathtofile/output.txt', 'w') as f_output: rows = list(csv.reader(f_input, delimiter='\t')) for row in write_cols(rows): f_output.write(row + '\n') 

Но я получил эту ошибку:

 Traceback (most recent call last): File "format.py", line 26, in <module> for row in write_cols(rows): File "format.py", line 19, in write_cols return [col_spacer.join("{{:<{width}}}".format(col, width=widths[index]) for index, col in enumerate(row)) for row in data] File "format.py", line 19, in <genexpr> return [col_spacer.join("{{:<{width}}}".format(col, width=widths[index]) for index, col in enumerate(row)) for row in data] IndexError: list index out of range 

Может ли кто-нибудь помочь мне решить эту проблему? Я написал этот скрипт на Python 2.7, и он отлично работает, теперь я пытаюсь выполнить настройки на 2.6

  • Печать python после выполнения
  • Генераторы в стиле Python в Go
  • PyCharm предупреждает о неразрешенном модуле встроенного модуля даты и времени
  • что означает переменная __file__ / do?
  • 'has_key ()' или 'in'?
  • Можно ли заменить «==» на «is», чтобы сравнить значения Boolean
  • Проверка правильности номера ISBN
  • Cython: ImportError: нет модуля с именем 'myModule': как вызвать модуль cython, содержащий cimport для другого контура cython?
  • 3 Solutions collect form web for “IndexError: индекс индекса вне диапазона чтения / записи из / в файл”

    Ваш формат звоните здесь:

     "{{:<{width}}}".format(col, width=widths[index]) 

    либо слишком много, либо недостаточно аргументов / фигурных скобок. В фигурных скобках в каждой строке указывается место для размещения текста для format . Я бы сказал, что у вас слишком много брекетов, и это смущает это. Вы можете использовать разные круглые скобки или удалить их …

    Скажите мне, если мне не хватает цели / цели этого заявления

    Вы должны изменить это

     "{:<{width}}".format(col, width=widths[index]) 

    к этому

     "{0:<{1}}".format(col, widths[index]) 

    и он будет работать.

    Я решил с помощью @MartinEvans.

    Проблема проще, чем мы могли себе представить: в нижней части входного файла была пустая строка.

    Python - лучший язык программирования в мире.