Остановить argparse из файловой области globbing

Я использую python argparse со следующим определением аргумента:

parser.add_argument('path', nargs=1, help='File path to process') 

Но когда я argparse свою команду с аргументом wildcard , argparse globs все пути к файлу и заканчивается ошибкой.

Как мне заставить argparse не argparse файлы?

3 Solutions collect form web for “Остановить argparse из файловой области globbing”

Как мне заставить argparse не глотать файлы?

Вы этого не сделаете.

Вы получаете оболочку, чтобы остановить глотание.

Однако. Давайте немного подумаем.

Вы говорите это в своем коде

 parser.add_argument('path', nargs=1, help='File path to process') 

Но вы фактически предоставляете wild-cards при запуске.

Один из этих двух неверен. Либо прекратите предоставление wild-карт во время выполнения, либо исправьте argparse, чтобы разрешить несколько имен файлов.

Оболочка расширяет аргумент подстановки, прежде чем argparse получит шанс увидеть его. Поместите кавычки вокруг аргумента подстановки, чтобы предотвратить расширение оболочки.

Позднее вы можете выполнить расширение подстановки с помощью glob.glob .

Глобус выполняется вашей оболочкой, а не модулем argparse. напечатайте sys.argv в начале, и вы увидите, что argparse получает как вход.

  • Подпарамеры с несколькими уровнями argparse
  • Получение вывода из скрипта Python в тестах Python
  • argparse необязательное значение для аргумента
  • Argparse "АргументError: аргумент -h / - help: конфликтующая строка опций: -h, --help"
  • Принять диапазон чисел в форме 0-5 с помощью argparse Python?
  • Не показывать длинные опции дважды в print_help () из argparse
  • Python argparse with - как значение
  • Argparse: игнорировать множественные позиционные аргументы при указании необязательного аргумента
  • Python - лучший язык программирования в мире.