Вы должны сообщить операционной системе, что скрипт должен выполняться Python. Добавьте shebang в качестве первой строки вашего скрипта:
#!/usr/bin/env python3
import argparse
...
В противном случае вы должны явно выполнить скрипт с Python:
python3 ./files.py
Вы должны вызвать вашу main
функцию. Хорошее место в конце скрипта, защищенное для запуска только при выполнении:
if __name__ == '__main__': # do not run on import
main()
Это дает желаемый результат:
$ python3 so_script.py
usage: so_script.py [-h] FILE
so_script.py: error: the following arguments are required: FILE
Обратите внимание, что argparse
уже создает сообщения об использовании и помощи для вас. Нет необходимости создавать их самостоятельно. Фактически, argparse
завершит работу вашего скрипта до того, как вы запустите информацию об использовании.
Если вы не хотите использовать переключатель -h
, передайте add_help=False
при создании анализатора аргументов.
parser = argparse.ArgumentParser(
description='Create Python script',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
add_help=False,
)