使用Python中的os.system()收集grep输出

22 浏览
0 Comments

使用Python中的os.system()收集grep输出

这个问题已经有了答案

Python:在运行 os.system 后如何获取 stdout?[重复]

我正在尝试在 python 中在 Linux 操作系统上使用这个 Ubuntu 命令

cmd = "grep -n 'str' file.txt"

在脚本中,我尝试使用

command = os.system(cmd)

但是当我尝试打印这个变量时,它只打印出一个 \'0\',但是在输出中出现了 1:str。有没有一种方法可以将此输出设置为变量?

admin 更改状态以发布 2023年5月22日
0
0 Comments

你得到了0,因为这就是该进程的退出代码。根据os.system()的文档说明:

在Unix上,返回值是进程的退出状态

要获取所需的行为,请改用subprocess包,像这样:

import subprocess
command = subprocess.check_output(cmd, shell=True)

0