subprocess 获取返回值
时间: 2023-09-26 16:07:28 浏览: 135
在 Python 中,可以使用 `subprocess` 模块来运行外部命令,并获取其返回值。具体的步骤如下:
1. 导入 subprocess 模块
```python
import subprocess
```
2. 定义要运行的命令
```python
cmd = "ls -l"
```
3. 使用 `subprocess.run()` 函数运行命令,并指定 `capture_output=True` 参数以捕获命令的输出信息
```python
result = subprocess.run(cmd, shell=True, capture_output=True)
```
4. 获取命令的返回值
```python
return_code = result.returncode
```
`return_code` 的值为 0 表示命令执行成功,其他值则表示命令执行失败。
完整代码示例:
```python
import subprocess
cmd = "ls -l"
result = subprocess.run(cmd, shell=True, capture_output=True)
print("Return code: ", result.returncode)
print("Output: ", result.stdout.decode())
```
相关问题
python subprocess.run获取返回值
可以使用subprocess.run()函数来获取子进程的返回值,只需要将check参数设置为True即可。例如:
```python
import subprocess
result = subprocess.run(['ls'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True)
print(result.stdout.decode())
```
这段代码将执行ls命令并获取其返回值,然后将其打印出来。
subprocess.run的返回值
### Python `subprocess.run` 的返回值
在 Python 中,`subprocess.run` 函数执行给定命令并等待其完成。该函数总是返回一个 `CompletedProcess` 实例[^1]。
#### `CompletedProcess` 属性
- **args**: 提供传入的参数列表或字符串。
- **returncode**: 整数形式表示子进程退出状态码;如果尚未结束则可能为 `None`.
- **stdout**: 子进程中标准输出的数据,默认情况下只有当调用时设置了 `stdout=PIPE` 才会捕获此数据.
- **stderr**: 类似于 `stdout`, 不过是从标准错误流读取.
下面是一个简单的例子来展示如何获取这些属性:
```python
import subprocess
result = subprocess.run(
["echo", "Hello World"],
capture_output=True,
text=True
)
print(f"Command executed: {result.args}")
print(f"Exit code: {result.returncode}")
print(f"Standard output: {result.stdout.strip()}")
print(f"Standard error: {result.stderr.strip() if result.stderr else 'No errors'}")
```
上述代码片段展示了如何通过访问 `CompletedProcess` 对象的不同字段来查看命令的结果以及任何产生的输出或错误消息.
阅读全文
相关推荐
















