如何保存来自“的数据”;sudo dpkg-l“;在Ubuntu终端中使用python
如何使用python在Ubuntu终端中保存来自“sudodpkg-l”的数据,我尝试过这样做,但没有成功如何保存来自“的数据”;sudo dpkg-l“;在Ubuntu终端中使用python,python,subprocess,Python,Subprocess,如何使用python在Ubuntu终端中保存来自“sudodpkg-l”的数据,我尝试过这样做,但没有成功 import os f = open('/tmp/dpgk.txt','w') f.write(os.system('sudo dpkg -l')) 用于捕获另一进程的输出: import subprocess output = subprocess.check_output(['sudo', 'dpkg', '-l']) os.system()仅返回另一进程的退出状态。上面的示例假
import os
f = open('/tmp/dpgk.txt','w')
f.write(os.system('sudo dpkg -l'))
用于捕获另一进程的输出:
import subprocess
output = subprocess.check_output(['sudo', 'dpkg', '-l'])
os.system()
仅返回另一进程的退出状态。上面的示例假定sudo
不会提示输入密码。要将命令输出保存到文件中,可以使用:
stderr=STDOUT
用于将命令的stderr重定向到STDOUT。非常感谢您的快速回复,我正在尝试:xd如果您需要与该命令交互,请尝试如何创建代码'/tmp/dpkg.txt'
文件?@J.F.Sebastian:没有;OP已经知道怎么做了。这不是问题的一部分。@MartijnPieters:为什么要将所有命令输出作为字符串加载到内存中,而只是立即将其写回文件?直接重定向到文件不是更简单(一般来说更有效)吗?@MartijnPieters:我已经更新了答案,使用了全名。
from subprocess import STDOUT, check_call
with open("/tmp/dpkg.txt", "wb") as file:
check_call(["sudo", "dpkg", "-l"], stdout=file, stderr=STDOUT)