gpt4 book ai didi

python - 如何在两个 python 脚本之间进行通信?

转载 作者:行者123 更新时间:2023-11-28 19:51:18 25 4
gpt4 key购买 nike

我有一个 3d 派对 python 脚本,它从命令行获取输入。此脚本 (input.py) 中的相关代码如下所示:

import sys

def chooseinput():
valid_inputs = ('a', 'b')
inp = raw_input('Enter choice (%s): ' % "/".join(valid_inputs))
if inp not in valid_inputs:
sys.stderr.write("Unsupported input %s\n" % inp)
return
print 'You chose ' + '\'' + inp + '\''
return inp

if __name__ == "__main__":
chooseinput()
# do something with the input...
chooseinput()
# do something with the input...

我正在尝试编写另一个 python 脚本 (harness.py) 来为上述脚本生成输入。

import subprocess

def harness():
p = subprocess.Popen(['python', 'input.py'], stdin=subprocess.PIPE)
p.stdin.write('a')
p.stdin.write('b')

if __name__ == '__main__':
harness()

我从命令行运行:

$ python harness.py
Enter choice (a/b): Enter choice (a/b): Traceback (most recent call last):
File "input.py", line 13, in <module>
chooseinput()
File "input.py", line 5, in chooseinput
inp = raw_input('Enter choice (%s): ' % "/".join(valid_inputs))
EOFError: EOF when reading a line

如果我在第一个脚本中只有一个输入,那么我可以通过删除第二个写入调用来使第二个脚本工作。如果第一个脚本需要多个输入,则会出现上述错误。

最佳答案

尝试:

p.stdin.write('a\n')
p.stdin.write('b\n')

关于python - 如何在两个 python 脚本之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6104289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com