如何使用python在Ubuntu终端中保存来自"sudo dpkg -l"的数据



如何使用python在Ubuntu终端中保存来自"sudo dpkg-l"的数据,我尝试过这样做,但它不起作用

import os
f = open('/tmp/dpgk.txt','w')
f.write(os.system('sudo dpkg -l'))

使用subprocess.check_output()捕获另一个进程的输出:

import subprocess
output = subprocess.check_output(['sudo', 'dpkg', '-l'])

os.system()只返回另一个进程的退出状态。上面的例子假设sudo不会提示输入密码。

要将命令的输出保存到文件中,可以使用subprocess.check_call():

from subprocess import STDOUT, check_call
with open("/tmp/dpkg.txt", "wb") as file:
    check_call(["sudo", "dpkg", "-l"], stdout=file, stderr=STDOUT)

stderr=STDOUT用于将命令的stderr重定向到stdout。

最新更新