subprocess 获取返回值
时间: 2023-09-26 16:07:28 浏览: 126
在 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.popen的返回值
要获取`subprocess.Popen`的返回值,可以使用`communicate()`方法。这个方法会等待子进程结束,并返回一个元组,其中包含子进程的标准输出和标准错误输出。示例代码如下:
```python
import subprocess
result = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
output, error = result.communicate()
print(output.decode())
```
在这个例子中,我们运行`ls -l`命令,并将结果存储在`result`变量中。然后,我们使用`communicate()`方法获取子进程的输出。最后,我们将输出解码并打印出来。
阅读全文