如何利用python中subprocess模块依次执行列表中的命令
时间: 2024-05-10 22:20:22 浏览: 56
可以使用subprocess模块中的Popen函数和communicate方法来依次执行列表中的命令。
首先,使用Popen函数打开一个子进程,将命令作为参数传入。然后,使用communicate方法等待子进程执行完毕,并将执行结果返回。
接下来,使用循环依次执行列表中的命令。示例代码如下:
```python
import subprocess
# 定义命令列表
command_list = [
"ls -l",
"pwd",
"echo 'Hello, world!'"
]
# 循环执行命令
for command in command_list:
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
print(f"Command: {command}")
print(f"stdout: {stdout.decode('utf-8')}")
print(f"stderr: {stderr.decode('utf-8')}")
```
在上述示例中,使用了shell=True参数来将命令作为字符串传入。如果不使用shell=True,需要将命令拆分为列表传入。
注意,使用subprocess模块执行命令时需要注意安全性问题,特别是在使用shell=True时。建议使用列表传入命令,并确保命令参数经过正确的验证和过滤。
阅读全文