执行完上述命令后如何获得log
时间: 2024-10-23 21:10:47 浏览: 13
当您在Python中执行包含`os.system()`的命令时,如果命令产生了输出(比如`adb shell report_luns -l 0`这样的ADB命令),这些输出通常会被直接打印到控制台,除非它是一个后台进程或者没有捕获输出。对于`adb shell`命令,它的输出通常是定向到终端的,而不是保存到Python脚本的日志文件中。
如果你想要记录这些命令的输出以便后续分析,可以采取以下步骤:
1. **捕获输出**:使用`subprocess`模块,如`check_output()`或`Popen.communicate()`,它们可以捕获命令执行的结果,包括标准输出(stdout)和标准错误(stderr):
```python
import subprocess
command = "adb shell report_luns -l 0"
output, error = subprocess.getstatusoutput(command)
if output:
print(f"Output: {output}")
if error:
print(f"Error: {error}")
```
这将把命令的输出和错误分别保存在`output`和`error`变量中。
2. **日志记录**:如果你想把这些结果写入一个文件,可以使用Python的内置`logging`模块,或者直接追加到文件中:
```python
with open('adb_log.txt', 'a') as log_file:
log_file.write(f"Command result: {output}\nError: {error}\n")
```
阅读全文