Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 27, 2018 14:36:22

P_N
Зарегистрирован: 2016-02-09
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в другую программу

Доброе время.
файл номер 1 (/usr/hand/1.py)
#!/usr/bin/env python
print(“1”)

Файл номер 2
#!/usr/bin/env python
import subprocess, os, commands
proc = subprocess.Popen('/usr/hand/1.py', shell=True, stdout=subprocess.PIPE).stdout.read()
print(proc)

Я уже и так и эдак и через commands
Первый файл для начала просто печатает “1” и эту “1” надо получить на печать второго файла. Промежуточный файл для записи вывода первого файла использовать не хочу.
Первый файл не обязательно должен печатать, лучше через return, но это я думаю я осилю.
Заранее спасибо.

Офлайн

#2 Июнь 28, 2018 02:54:57

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

вывод в другую программу

Вообще, начни с консоли: первый скрипт должен делать print(); второй скрипт должен делать sys.stdin.read(); в консоли операционной системы делаешь

python3 script1.py | python3 script2.py
Как разберёшься, тогда и можно будет переходить к передаче данных между процессами. Часто она вообще не нужна, так как всё делается внешним конвейером и по правилам хорошего тона связывать программы между собой не нужно. Программы не должны знать про существование друг друга.



Отредактировано py.user.next (Июнь 28, 2018 02:58:27)

Офлайн

#3 Июль 3, 2018 11:46:27

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

вывод в другую программу

Для связи между двумя процессами существуют сокеты (именно для этого и создавались), почитаю документацию к ним или туториалы, как это делают многие. Пример - первый скрипт(слушает):

 from socket import socket
sk = socket()
sk.bind(("127.0.0.1", 9999))
sk.listen(1)  # Макс. 1 подключение
usr, _ = sk.accept()
usr.send("Hello, world!".encode())
usr.close()  # Не забывай закрывать подключение и сам сокет, а то останется порт открытым и используемым
sk.close()
exit(0)
Второй скрипт:
 from socket import socket
sk = socket()
sk.connect(("127.0.0.1", 9999))
info = sk.recv(13)
print("Received info!: " + info.decode())



##############
Поднял +1 деление по полоске опыта, ауе
##############



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Июль 3, 2018 11:47:19)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version