【问题标题】:getting subprocess result in variable在变量中获取子流程结果
【发布时间】:2015-03-13 13:10:26
【问题描述】:

我在 pytho 脚本中使用 subprocess.call() 执行 python 脚本。使用subproecss 执行的脚本是一个server 进程,它将结果发送回调用客户端。

result = subprocess.call('python -m module/coref_resolution/src/coref/corenlp &', shell = True)

有没有办法将 corenlp.py 的结果接收到result 变量中?

【问题讨论】:

  • 您应该改为导入模块并调用(如果您愿意,可以在使用多处理的单独进程中)获得结果的必要函数。你为什么在这里使用&
  • @J.F.Sebastian: 把它作为后台的守护进程。我正在按顺序运行几个进程。否则它会停止成为守护进程,监听端口 8080
  • 您不需要 Python 脚本中的 shell 作业控制。改用 subprocess.Popen 。删除shell=True,使用列表传递命令

标签: python subprocess


【解决方案1】:
import shlex
cmd = shlex.split('your command')
output = subprocess.Popen( cmd, stdout = subprocess.PIPE).communicate()[0]

【讨论】:

  • 你可以写成output = subprocess.check_output(['command', 'arg1', 'arg2'])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多