Python 中的非同步Shell 指令執行:探索替代方法
從Python 腳本非同步執行外部指令是一項有價值的技術,允許持續執行腳本當外部命令執行其任務時。本文探討了實現這種異步行為的適當方法,重點關注os.system() 和subprocess.Popen.
os.system() 和& 符號
的使用在指令末使用os.system() 和與號(&) 確實可以建立一個非同步運行的分離程序。但是,此方法有局限性,不被認為是非同步執行的建議方法。
subprocess.Popen - 高級替代方法
為了可靠的非同步命令執行,subprocess.波彭是首選。它提供了對子進程的廣泛控制,允許您:
• Create asynchronous processes with Popen() • Perform tasks concurrently while the child process is active • Terminate the process with terminate() • Query its running status with poll() • Communicate with it using stdin and stdout
subprocess.Popen
from subprocess import Popen p = Popen(['watch', 'ls']) # Replace with your command # Other code can run here while the command is executing p.terminate() # Stop the process when necessary
結論
雖然os.system() 可以提供基本層級的非同步執行,但subprocess.Popen 提供了用於控制子進程並與其互動的更強大和靈活的解決方案。它的多功能性和易用性使其成為 Python 中非同步 shell 命令執行的建議方法。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3