簡體   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