我想要球拍程序和Python程序之间的通信。
我的球拍代码:
#lang racket
(define-values (sp o i e) (subprocess #f #f #f "hello.exe" ))
(display "server" i)
(flush-output i)
(display (read o))
我的Python代码:
input_var = raw_input("Enter something: ")
print ("you entered " + input_var)
如果我只是在我的 python 程序中打印它工作正常。如果我正在读取球拍程序的输入,它就会挂起。我想从球拍上读取消息。
它看起来像是挂起的,因为您未能向输出端口发出换行符 (\n)。这是我运行你的代码的方式:
#lang racket
(define-values (sp i o e) (subprocess #f #f #f
"/usr/bin/python"
"/tmp/foo.py"))
(display "server\n" o)
(flush-output o)
(display (read-line i))
...使用您在“/tmp/foo.py”中提供的代码,我看到了输出:
Enter something: you entered server
...这正是我所期望的。
这里唯一有趣的区别是我在输出中附加了一个换行符。
另请注意,我交换了“o”和“i”的名称,因为我不喜欢“o”是输入端口这一事实。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)