#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 -