Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保存来自“的数据”;sudo dpkg-l“;在Ubuntu终端中使用python_Python_Subprocess - Fatal编程技术网

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

如何保存来自“的数据”;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()仅返回另一进程的退出状态。上面的示例假

如何使用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()
仅返回另一进程的退出状态。上面的示例假定
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)