我正在使用Django migrate / makemigrations命令的Web界面。我一直在检查代码,他们使用Python input()
来获取questions的答案。
目前我尝试使用Python subprocess
库来回答外部脚本(运行Python脚本的Python脚本)。
我已经生成了一个可用作测试的简单脚本:
sum.py
first_number = input("Welcome to the program that sum two numbers, \
please give me the first number: ")
second_number = input("Now, please give me the second number: ")
print("Congratulations, the result of the sum of %s and %s is: %s" %
(first_number, second_number, (first_number + second_number)))
我发现制作脚本的唯一方法是运行第一个脚本:
from subprocess import Popen, PIPE
command = ["python", "sum.py"]
p = Popen(command, stdin=PIPE, stdout=PIPE)
p.stdin.write("1\n")
p.stdin.write("2\n")
print p.communicate()[0]
我几天前在互联网上找到了一些代码,可以像stdout一样实时收到ping:
from subprocess import Popen, PIPE
command = ["ping", "192.168.1.137"]
p = Popen(command, stdout=PIPE, stdin=PIPE, )
while p.poll() is None:
print p.stdout.readline()
我修改了代码并尝试运行脚本:
来自192.168.1.137的64个字节:icmp_seq = 7 ttl = 64 time = 1.655 ms 来自子进程导入Popen,PIPE
command = ["python", "suma.py"]
p = Popen(command, stdout=PIPE, stdin=PIPE, )
response = "1\n"
while p.poll() is None:
print p.stdout.readline() #Obtain the message
p.stdin.write(response) #Answer the question
我已经找到了一些可能的方法来使用websockets和node.js,例如tty.js或web-console,但由于我对编程语言不太了解,因此可能很难保留。< / p>
我发现从stdout接收并向HTML页面发送消息并从用户那里获得响应。
我有点迷失,任何建议都将受到赞赏。 感谢。