Как исправить argv [1] в Python? - PullRequest
0 голосов
/ 07 мая 2020

У меня проблема с argv[1] в Python 3.8.2. Это мой код:

from sys import *

def open_file(filename):
    print(filename)

def run():
    open_file(argv[1])

run()

И он показывает ошибку:

Traceback (most recent call last):
  File "*File*", line 9, in <module>
    run()
  File "*File*", line 7, in run
    open_file(argv[1])
IndexError: list index out of range

Может кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

argv - это список всех параметров, введенных после python в вашей командной строке, разделенных пробелами.

пример: foo.py:

from sys import argv
print(argv)
print(argv[0])
print(argv[1])

командная строка:

python foo.py 1 2 3

стандартный вывод:

['foo.py', '1', '2', '3']
foo.py
1
0 голосов
/ 07 мая 2020

Вы уверены, что вызываете скрипт с аргументом? Вот так:

python myscript.py "First arg"

Кстати,

from sys import *

- плохой код. Вы никогда не должны этого делать. Если вы хотите импортировать весь модуль, лучше сделать это так:

import sys

Затем для ссылки на нужную переменную используйте name_of_module.name_of_variable:

sys.argv[1]
...