Как передать аргументы в оболочку python

#python

#python

Вопрос:

Я хотел бы поиграть с элементами в sys.argv из оболочки python. Есть ли способ передать произвольные аргументы, такие как:

 $ python one two three
  

И что это откроет оболочку python, и я мог бы получить следующее:

 >>> import sys
>>> sys.argv
# ['python', 'one', 'two', three'],  or ['one', 'two', 'three']
  

Комментарии:

1. python -h твой друг здесь 🙂

2. @OnesimusUnbound верно, но где я могу получить больше информации о - ? Это просто дает однострочник, который я не могу понять (который я скопировал ниже).

3. Похоже, что ваши вопросы здесь действительно больше касаются командной строки (или таких оболочек, как bash), чем Python.

Ответ №1:

Вы можете передать эти аргументы после дефиса, например:

$ python - one two three

В этом случае sys.argv даст ['-', 'one', 'two', 'three']

Вот ссылка, которая поможет вам с такими аргументами

Комментарии:

1. Спасибо. Я вижу - : program read from stdin (defau< interactive mode if a tty) в справке. Это единственная цель - или у нее есть другие применения?

2. Когда он не находится в интерактивном режиме, его можно использовать для передачи команд из предыдущей команды оболочки, таких как echo print(1, 2, 3) | python - (печатает 1 2 3 )

3. вы можете использовать argsparse(), чтобы быть активно функциональным и для python

4. @Marco — спасибо. Хотите добавить эту ссылку в свой ответ, и я ее приму? docs.python.org/3/using/cmdline.html#interface-options

5. @David542 Извините, я забыл экранировать печать, это должно быть echo "print(1, 2, 3)" | python -