如何获取apt安装的所有软件包的列表?

How to get list of all packages installed by apt?

我想将所有由 apt(或任何非 pip)安装的软件包名称作为“Python 列表”。

此 bash 命令将所有包写入文件 apt_list.txt:

dpkg -l | grep ^ii | awk '{print }' > apt_list.txt

我考虑通过 Python 代码读取此文件以获得列表,但我认为此解决方案效率低下:

import os
os.system("dpkg -l | grep ^ii | awk '{print }' > apt_list.txt")
# ...
# Python code
# to read the file apt_list.txt
# ...

那么直接有效的方法是什么?

我想到的另一个解决方案是直接通过 Python 代码获取文件夹的内容(文件列表),其中包括“dpkg -l *”命令列出的包。但我想这些包可能在多个文件夹中,我不知道这些多个位置是什么。

如果你使用subprocess那么你可以读取标准输出,所以你不需要写文件

import subprocess

ret=subprocess.run("dpkg -l | grep ^ii | awk '{print }'", capture_output=True, shell=True)
my_list=ret.stdout.decode().split('\n')