0

我尝试通过 apache-commons-exec 捕获 python 进程输出。但看起来它不会打印输出,只有在我的python进程完成后才会显示输出。

这是我的java代码

CommandLine cmd = CommandLine.parse("/Users/jzhang/anaconda/bin/python");
cmd.addArgument("/Users/jzhang/a.py");
DefaultExecutor executor = new DefaultExecutor();
ExecuteWatchdog watchDog = new ExecuteWatchdog(ExecuteWatchdog.INFINITE_TIMEOUT);
executor.setWatchdog(watchDog);

executor.execute(cmd);

这是我要执行的python代码(我只在python进程退出后才得到输出,但我想要的是实时得到输出)

for i in range(1,10):
  print(i)

import time

time.sleep(10)
4

1 回答 1

1

我找到了答案,我应该使用 set flush 为 true。例如

print('hello world', flush=True)
于 2017-08-01T08:59:36.357 回答