理想情况下,它应该像我想要使用单个子进程调用执行所有这些命令的命令列表。我可以通过将所有命令存储为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. 如何在Python中的子进程中执行shell命令?
- 2. 当执行单个命令时,Bash'吞咽'子shell子进程
- 3. 使用Python执行多个adb shell命令
- 4. 使用python执行多个Unix命令
- 5. 在同一个shell进程中运行多个命令
- 6. 如何从python中的另一个shell执行命令?
- 7. 在一个进程中用于多个命令的python子进程
- 8. 从java执行多个命令shell
- 9. 通过Jsch Shell执行多个命令
- 10. 一次执行多个Python命令
- 11. 推荐使用shell执行多个shell命令的方法()
- 12. Python:如何在一个进程中使用popen运行多个命令
- 13. 如何从python执行os/shell命令
- 14. 如何通过Python执行shell命令
- 15. m4 - 执行一个shell命令
- 16. 使用Python的子进程模块运行shell命令
- 17. 创建一个Shell命令来执行另一个命令加上更多
- 18. 从.NET应用程序执行一个shell命令
- 19. 运行程序多次使用一个行shell命令
- 20. 如何在python脚本中执行多个命令的命令
- 21. 如何使用VBA执行shell命令?
- 22. 子进程调用ffmpeg(命令行)
- 23. 如何向Python子进程提交多个命令?
- 24. 从同一个node.js子进程运行多个命令
- 25. 使用线程执行shell命令C++
- 26. python子进程popen运行多个命令
- 27. 在shell(bash)中如何在管道中执行多个命令?
- 28. 从子进程模块(Windows)执行Python的命令行指令
- 29. 我们可以使用paramiko执行命令在多个shell
- 30. 使用php执行多个shell命令nohup
你能提供一个典型的你想要执行的命令类型的例子吗? – idjaw
您可以使用'&'/';'/'&&'将这些命令链接在一起吗?为什么只有一个子进程调用 - 为什么不循环会给你更多的控制权,例如,提前终止? – ryachza
使用';'按顺序放置它们:'subprocess.call(“do_A; do_B; do_C;”,shell = True)'。以编程方式:'call(';'.join(commands),shell = True)' – Bakuriu