subprocess python Popen 打开 java jar
subprocess python Popen to open java jar
我是 python 子流程的新手,我不理解文档。
我正在尝试 运行 我的 python 程序中的一个 jar 文件并将输出通过管道返回到 python。
sys.stdout.write("haha")
subprocess.Popen(['java', 'myjarfile.jar'], stdin= subprocess.PIPE,
stdout = subprocess.PIPE)
ans = raw_input("")
然而,这似乎不起作用
将 b'haha'
bytestring 作为输入传递给 java
子进程并将其标准输出作为 ans
bytestring:
#!/usr/bin/env python3
from subprocess import check_output
ans = check_output(['java', '-jar', 'myjarfile.jar'], input=b'haha')
input
参数仅在 Python 3.4 之后才受支持,您可以在较早的 Python 版本上使用 .communicate()
:
#!/usr/bin/env python
from subprocess import Popen, PIPE
p = Popen(['java', '-jar', 'myjarfile.jar'], stdin=PIPE, stdout=PIPE)
ans = p.communicate(b'haha')[0]
if p.returncode != 0:
raise Error
我是 python 子流程的新手,我不理解文档。
我正在尝试 运行 我的 python 程序中的一个 jar 文件并将输出通过管道返回到 python。
sys.stdout.write("haha")
subprocess.Popen(['java', 'myjarfile.jar'], stdin= subprocess.PIPE,
stdout = subprocess.PIPE)
ans = raw_input("")
然而,这似乎不起作用
将 b'haha'
bytestring 作为输入传递给 java
子进程并将其标准输出作为 ans
bytestring:
#!/usr/bin/env python3
from subprocess import check_output
ans = check_output(['java', '-jar', 'myjarfile.jar'], input=b'haha')
input
参数仅在 Python 3.4 之后才受支持,您可以在较早的 Python 版本上使用 .communicate()
:
#!/usr/bin/env python
from subprocess import Popen, PIPE
p = Popen(['java', '-jar', 'myjarfile.jar'], stdin=PIPE, stdout=PIPE)
ans = p.communicate(b'haha')[0]
if p.returncode != 0:
raise Error