Уведомления

Группа в Telegram: @pythonsu

#1 Июль 30, 2008 04:44:45

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

всем привет,
подскажите как реализовать передачу результата питон скрипта в другой скрипт python?
операционка винда
пока вижу решение вызов из питон скрипта вызов другого скрипта питон . Но хотелось бы покрасивее типа
get_value.py > script.py
или
get_value.py | script.py
что должно быть в питон скрипте ?
print value
чтобы переменная была успешно передана в script.au3?
операционка windows
P.S. по каким словам в гугле можно поискать как это сделать.
Большое спасибо.



Офлайн

#2 Июль 30, 2008 05:22:39

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

а windows умеет pipes?



Офлайн

#3 Июль 30, 2008 06:37:18

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

Я точно не знаю, как это тут называется, но ‘DIR | MORE’ и подобное умеет.
Хотя и не без проблем.



Отредактировано (Июль 30, 2008 06:49:43)

Офлайн

#4 Июль 30, 2008 06:46:56

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

для этого ипользуются стандратные потоки ввода-вывода.
получить к ним доступ можно через модуль sys:
sys.stdin - входной поток
sys.stdout - выходной поток
sys.stderr - выходной поток для ошибок

Работать с ними можно как с файлами, но есть особенности….



Отредактировано (Июль 30, 2008 06:56:23)

Офлайн

#5 Июль 30, 2008 07:57:53

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

код t1.py

import sys
sys.stdout.write('hello word')
код t2.py
import sys
a = sys.stdin.read()
print a
запускаю
t1.py | t2.py
close failed: [Errno 22] Invalid argument
Traceback (most recent call last):
File "t2.py", line 2, in
<module>
a = sys.stdin.read()
IOError: [Errno 9] Bad file descriptor
а ожидал получить hello word!!! где неверен код?



Офлайн

#6 Июль 30, 2008 13:34:21

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

передай через промежуточный файл 1.py > out && 2.py



Офлайн

#7 Июль 30, 2008 15:41:50

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

cybergrind
передай через промежуточный файл 1.py > out && 2.py
а как в 2.py получить то? через какую переменную? stdin?
или предлагаешь прочитать его в 2.py?



Отредактировано (Июль 30, 2008 15:45:18)

Офлайн

#8 Июль 30, 2008 15:49:14

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

предлагаю просто прочитать… можно конечно через popen… это будет наиболее похоже на то что ты хочешь

#2.py
stdin, stdout = os.popen4('1.py')
for s in stdout.read():
print '!',s


#1.py
print 'hello'
только у меня посимвольно читаеться из stdout - но тут я думаю ты разберешся быстро

+ запускать необязательно другой скрипт, можно и прогу =)



Отредактировано (Июль 30, 2008 15:56:25)

Офлайн

#9 Июль 30, 2008 15:56:00

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

j2a
а windows умеет pipes?
да



Офлайн

#10 Июль 31, 2008 13:30:32

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите как реализовать передачу результата питон скрипта в другой

balu
j2a
а windows умеет pipes?
да
посмотрите пожалуйста
http://linux.byexamples.com/archives/343/python-handle-string-from-pipelines-and-list-of-param/#comment-49923
приведены примеры
import sys
sys.stdout.write(sys.stdin.read())
запускаю
echo "hello python" | ./simple.py
получаю
Traceback (most recent call last):
File “D:\python\pipe\simple.py”, line 3, in
sys.stdout.write(sys.stdin.read())
IOError: [Errno 9] Bad file descriptor
второй пример
import sys

def main(argv = sys.argv):
# detects whether have pipe line parsing in
if not sys.stdin.isatty():
for s in sys.stdin.readlines():
print "pipe: " + s,
# param
L = sys.argv[1:]
if len(L)!=0:
print "param: " + str(L)
sys.exit(0)
pass

if __name__ == "__main__":
try:
main(sys.argv)
except KeyboardInterrupt:
pass
аналогично запускаю
получаю
D:\python\pipe>echo “wefwef” | toosimply.py
Traceback (most recent call last):
File “D:\python\pipe\toosimply.py”, line 18, in
main(sys.argv)
File “D:\python\pipe\toosimply.py”, line 7, in main
for s in sys.stdin.readlines():
IOError: [Errno 9] Bad file descriptor
понимаю что на сайте приведены примеры для линукс, должны ли они работать для windows



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version