[英]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.