subprocess 传入参数
时间: 2023-10-19 14:05:48 浏览: 74
使用 subprocess 调用外部命令时,可以使用以下方式传入参数:
1. 作为命令行参数传入:将参数作为列表传入 subprocess.run() 函数的 args 参数中。
例如,调用 ls 命令并传入参数 -l 和 /home 目录:
```
import subprocess
result = subprocess.run(["ls", "-l", "/home"])
```
2. 作为标准输入传入:将参数作为字符串传入 subprocess.run() 函数的 input 参数中,并将 stdin 参数设置为 subprocess.PIPE。
例如,调用 cat 命令并传入参数字符串 "hello\nworld\n":
```
import subprocess
result = subprocess.run(["cat"], input="hello\nworld\n", stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
```
注意,当使用 input 参数时,需要将 text 参数设置为 True,以便将输入解释为字符串。
3. 作为环境变量传入:将参数作为字典传入 subprocess.run() 函数的 env 参数中。
例如,设置环境变量 TEST_VAR 的值为 "test":
```
import subprocess
result = subprocess.run(["echo", "$TEST_VAR"], env={"TEST_VAR": "test"}, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
```
以上是三种常用的传入参数方式,具体使用哪种方式取决于具体的需求和外部命令的使用方式。
阅读全文