Я пытаюсь воспроизвести результаты исследовательской статьи, в которой они предоставили коды Python. Существует скрипт для загрузки их данных, и я пытаюсь запустить скрипт с терминала,
Python getData.py
это вызывает ошибку
Файл "getData.py", строка 127, в dataFile = sys.argv[1]+"/raw-comp.txt" IndexError: индекс списка вне допустимого диапазона
Связанная часть в коде Python находится здесь,
if __name__ == '__main__' :
dataFile = sys.argv[1]+"/raw-comp.txt"
# Read the data
Я не знаю, связано это или нет; но сценарий «getData.py» находится в папке «src», тогда как файл «raw-comp.txt» находится в папке «data».
Я проверяю это решение здесь, python: IndexError: индекс списка вне диапазона и он говорит, что argv
хранит аргументы командной строки, и вам нужно передать аргументы перед ее вызовом. Я также проверил это; from sys import argv - какова функция script где скрипт и имя файла были присвоены argv. Но здесь, в этом коде, argv не был определен до фрагмента кода выше, кроме того, это первый раз, когда argv встречается в скрипте.
Я действительно понятия не имею, почему он не запустился, потому что он должен работать без каких-либо изменений, как они говорят. Спасибо уже.
Редактировать: они предоставили описание сценария ниже, они не упоминают никаких аргументов, которые должны быть переданы из терминала.
getData: a script to download and/or build the data files.
sys.argv[1]
, а вы выполняете ее без него. - person Paulo Bu   schedule 27.03.2014