Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 14, 2017 22:56:00

q3ta
Зарегистрирован: 2017-06-14
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача параметров в скрипт

вызывая скрипт через терминал на linux. хочу передать параметром результат выполнения функции самого терминала. Например:
python smt.py и передать туда результат выполнения команды pwd. Каким образом это можно сделать? Мне именно нужно передать значения таким методом, как сделать по другому я знаю. Спасибо

Офлайн

#2 Июнь 14, 2017 23:44:48

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Передача параметров в скрипт

Вот вам пример

 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



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Июнь 14, 2017 23:45:37)

Офлайн

#3 Июнь 15, 2017 00:14:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10014
Репутация: +  857  -
Профиль   Отправить e-mail  

Передача параметров в скрипт

В консоли так:

python smt.py $(pwd)
Или так:
python smt.py `pwd`
Или вообще вот так (что чаще бывает):
path=`pwd`
./smt.py "$path"

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

Это я тебе практический совет даю, теоретических-то вариантов море.



Отредактировано py.user.next (Июнь 15, 2017 00:16:32)

Офлайн

#4 Июнь 15, 2017 03:46:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Передача параметров в скрипт

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

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

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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version