Всё о Python

Чтение аргументов командной строки

python main.py hello world

Чтение аргументов командной строки в Python производится с помощью модуля sys (ссылка на документацию).

Пример:

import sys
print(sys.argv)

Пишем в терминале:

$ python main.py hello world
['main.py', 'hello', 'world']

sys.argv разделяет аргументы по пробелам, но учитывает кавычки:

$ python main.py "hello world"
['main.py', 'hello world']

Первый элемент в списке sys.argv всегда содержит имя скрипта. При вызове программы из IDLE, sys.argv[0] содержит полный путь к скрипту, а при вызове из командной строки, sys.argv[0] содержит первый аргумент команды python. При запуске exe программы, созданной с pyinstaller, sys.argv[0] содержит полный путь к исполняемому файлу.

Примеры:

import sys
print(sys.argv[0])
$ python main.py
main.py
$ python ../main.py
../main.py
$ pyinstaller --onefile main.py
$ ./dist/main
# полный путь к исполняемому файлу

Остальные аргументы можно получить с помощью sys.argv[1:].

import sys
print(sys.argv[1:])
$ python main.py hello world
['hello', 'world']
$ python main.py
[]