我正在尝试将一个字符串从 program 1 发送到另一个程序 program 2 ,两者都在python 3中 e.g。
#_____________________________________1.py
a = input('Type in a string: ')
# send somehow a string a from this program
# to the second program
我想以某种方式将字符串 a
发送到我的第二个程序,以便打印出a
:
#_____________________________________2.py
# receive somehow a string from the first
# program and store it in a
print(a)
我该怎么做?
我仍然是一名初学程序员,如果你能帮助我,我会很高兴。
1.py
2.py
输入的字符串。解答:
我找到了解决这个问题的方法。
import subprocess
username = input()
subprocess.Popen(['python.exe', 'file.py', username])
答案 0 :(得分:1)
有多种方法可以使用 socket , file , pipe , shared-memory , message ,...将字符串从一个进程传输到另一个进程。
作为使用消息的示例, ZeroMQ
提供了一个简单的消息传递库,可以比系统(原始,低级)套接字更智能地执行此操作:
有关详细信息,请查看http://zguide.zeromq.org/
HelloWorld服务器示例:
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# Wait for next request from client
message = socket.recv()
print("Received request: %s" % message)
# Do some 'work'
time.sleep(1)
# Send reply back to client
socket.send(b"World")
HelloWorld客户端示例:
import zmq
context = zmq.Context()
# Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
# Do 10 requests, waiting each time for a response
for request in range(10):
print("Sending request %s …" % request)
socket.send(b"Hello")
# Get the reply.
message = socket.recv()
print("Received reply %s [ %s ]" % (request, message))
使用文件,您可以使用程序A编写文件,然后使用程序B对其进行轮询。
答案 1 :(得分:1)
答案 2 :(得分:0)
# file_1.py
def get_input():
return input('Type in a string: ')
# file_2.py
from file_1 import get_input
print(get_input())
答案 3 :(得分:0)
两个程序一起通信的最常见方式是通过http,tcp或其他协议。与浏览器(一个程序)与Web服务器(另一个程序)通信的方式相同。
你可以从一个程序发送http请求,第二个必须听取它。
如果您想了解更多信息,请寻找SOA。这有点复杂,所以如果你有任何问题,请问。
答案 4 :(得分:0)
我找到了答案。
import subprocess
username = input()
subprocess.Popen(['python.exe', 'file.py', username], subprocess.creationflags=CREATE_NEW_CONSOLE)