如何获取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')
我想将所有由 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')