繁体   English   中英

Python subprocess bash命令,输出文件被阻止

[英]Python subprocess bash command with output file blocked

我有以下代码运行LM_CMD程序并将输出写入文件fp_arpa 在那之后我有另一个函数来读取和处理该文件( fp_arpa )。 但是,根据该函数,该文件为空,而在文件系统中则不是。 我猜测子进程锁定文件指针,直到整个Python程序完成(虽然我可能是错的)。 我该如何避免这个问题?

base_cmd = '%s -lm %s' % (LM_CMD, fp_arpa)
subprocess.Popen([base_cmd], shell=True)
some_function_that_processes(fp_arpa)

subprocess.Popen在进程启动后立即返回。 它不等待该过程完成。 改为调用subprocess.check_call()

#!/usr/bin/env python
import subprocess

subprocess.check_call([LM_CMD, '-lm', fp_arpa])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM