Это код, я работаю с этим приходит из практического программирования:process_file (sys.argv [1]) IndexError: Индекс списка вне диапазона
import sys
def process_file(filename):
'''Open, read, and print a file.'''
input_file = open(filename, "r")
for line in input_file:
line = line.strip()
print line
input_file.close()
if __name__ == "__main__":
process_file(sys.argv[1])
После импорта этого модуля в IDLE и передать текст файл аргумент через process_file(), я получаю эту ошибку:
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
process_file("data.txt")
File "C:\Python26\read_file_2.py", line 14, in process_file
process_file(sys.argv[1])
IndexError: list index out of range
Как я могу получить эту программу, чтобы работать, не получая эту ошибку? Любая помощь приветствуется.
Это 'sys.argv [0]' или 'sys.argv [1]'? Вы не очень согласитесь. ;) Это если 1, я бы догадался, что не передано никакого параметра. – Bobby
Прежде всего, разместите фактический код, вызывающий ошибку, - обратите внимание, что в вашем коде есть 'sys.argv [1]', но 'sys.argv [0]' в вашей трассировке. Во-вторых, убедитесь, что ваш отступы верны в вашем опубликованном коде - это еще более важно в Python, где пробелы значительны. –
Неплохо, я экспериментировал с изменением кода на sys.argv [0] и скопировал неправильное сообщение об ошибке. отредактировал его. – Timmay