Найти - Пользователи
Полная версия: Передача параметров в скрипт
Начало » Python для новичков » Передача параметров в скрипт
1
q3ta
вызывая скрипт через терминал на linux. хочу передать параметром результат выполнения функции самого терминала. Например:
python smt.py и передать туда результат выполнения команды pwd. Каким образом это можно сделать? Мне именно нужно передать значения таким методом, как сделать по другому я знаю. Спасибо
JOHN_16
Вот вам пример
 MacBook-Pro-Mahmudov:tmp john_16$ cat r_echo.py
#!/usr/bin/env python3
import sys
for s in sys.stdin.readlines():
    print(s.rstrip()[::-1])
MacBook-Pro-Mahmudov:tmp john_16$ pwd
/tmp
MacBook-Pro-Mahmudov:tmp john_16$ pwd | ./r_echo.py
pmt/
MacBook-Pro-Mahmudov:tmp john_16$ cat r_echo.py | ./r_echo.py
3nohtyp vne/nib/rsu/!#
sys tropmi
:)(senildaer.nidts.sys ni s rof
)]1-::[)(pirtsr.s(tnirp
py.user.next
В консоли так:
python smt.py $(pwd)
Или так:
python smt.py `pwd`
Или вообще вот так (что чаще бывает):
path=`pwd`
./smt.py "$path"

А в скрипте используй модуль argparse .

Это я тебе практический совет даю, теоретических-то вариантов море.
doza_and
q3ta
Мне именно нужно передать значения
py.user.next
теоретических-то вариантов море.

Вопрос странный, поскольку ответ известен. Как и в любую другую программу. Резюмируя
Как вам правильно сказали
  • через stdin (наиболее логично)
  • через аргументы командной строки (но можно использовать просто sys.argv)
  • через окружение, (os.environ)

Но я всегда интересовался мотивацией изощренных способов. Чего не хватает os.getcwd чтобы удовлетворить вашим потребностям и подвигло к отказу от этого кроссплатформенного решения?

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB