理想情況下,它應該像我想要使用單個子進程調用執行所有這些命令的命令列表。我可以通過將所有命令存儲爲shell腳本並使用子進程調用該腳本來做類似的事情,但我需要一個純粹的python解決方案。我將使用shell = True執行命令,並且我瞭解風險。如何用一個python子進程調用執行多個shell命令?
2
A
回答
1
如果它們是獨立的,使用分號鏈接它們。
例如,(Python 3中)
>>> import subprocess
>>> result = subprocess.run('echo Hello ; echo World', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>>> result
CompletedProcess(args='echo Hello ; echo World', returncode=0, stdout=b'Hello\nWorld\n')
但在技術上,這不是一個純Python溶液,因爲shell=True
。 arg處理實際上是由shell完成的。 (你可能會認爲它是執行/bin/sh -c "$your_arguments"
)
如果你想要一個更純粹的解決方案,你必須使用shell=False
並循環你的幾個命令。據我所知,沒有辦法直接用子流程模塊啓動多個子流程。
+1
必須通過命令列表循環。一個外殼可以做到這一點。 python可以做到這一點。 – Skaperen
+0
@Skaperen正好。只是,如果Python執行循環和'exec()'系統調用,我會認爲它更純粹,因爲OP需要。 –
相關問題
- 1. 如何在多個shell中執行多個命令Python
- 2. 如何在Python中的子進程中執行shell命令?
- 3. 當執行單個命令時,Bash'吞嚥'子shell子進程
- 4. 按順序執行python命令和shell命令(使用子進程)
- 5. 使用Python執行多個adb shell命令
- 6. 使用python執行多個Unix命令
- 7. 執行在子shell一個管道命令,如果命令是一個變量
- 8. 在python的子進程中執行shell命令
- 9. 在同一個shell進程中運行多個命令
- 10. 如何使用node.js執行多個shell命令?
- 11. 如何從python中的另一個shell執行命令?
- 12. 在一個進程中用於多個命令的python子進程
- 13. 一次執行多個Python命令
- 14. 從java執行多個命令shell
- 15. 通過Jsch Shell執行多個命令
- 16. 推薦使用shell執行多個shell命令的方法()
- 17. 子進程+多處理 - 順序執行多個命令
- 18. 使父進程中的子進程執行shell命令(鎖殼)
- 19. Python:如何在一個進程中使用popen運行多個命令
- 20. 如何用一個功能鍵在vi中執行shell命令?
- 21. 使用子進程執行ADB命令
- 22. 如何在python中執行shell命令?
- 23. 如何通過Python執行shell命令
- 24. 如何從python執行os/shell命令
- 25. 從python執行shell命令
- 26. Groovy執行一個git shell命令
- 27. m4 - 執行一個shell命令
- 28. 使用Python的子進程模塊運行shell命令
- 29. 使用python執行shell郵件命令
- 30. 從.NET應用程序執行一個shell命令
你能提供一個典型的你想要執行的命令類型的例子嗎? – idjaw
您可以使用'&'/';'/'&&'將這些命令鏈接在一起嗎?爲什麼只有一個子進程調用 - 爲什麼不循環會給你更多的控制權,例如,提前終止? – ryachza
使用';'按順序放置它們:'subprocess.call(「do_A; do_B; do_C;」,shell = True)'。以編程方式:'call(';'.join(commands),shell = True)' – Bakuriu