0

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

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

2 回答 2

7

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

import subprocess

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

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

于 2013-02-16T15:52:21.507 回答
1

要将命令的输出保存到文件中,您可以使用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用于将命令的标准错误重定向到标准输出。

于 2013-02-16T16:01:24.707 回答