我正在尝试创建一个python脚本,可以提取安装在windows系统上的软件以及安装日期,我几乎没有研究过提取软件信息,但不确定如何才能获得日期,找到下面的脚本
import subprocess
Data = subprocess.check_output(['wmic', 'product', 'get', 'name'])
a = str(Data)
try:
# arrange the string
for i in range(len(a)):
print(a.split("\\r\\r\\n")[6:][i])
except IndexError as e:
print("Done")发布于 2020-11-18 21:54:48
看起来wmic product get name没有返回安装日期,所以我们需要做的第一件事就是获取安装日期。wmic product list会返回足够多的数据(可能会有进一步限制的方法)。
然后,我们需要一种方法来解析输出。我使用pandas和正则表达式来指定分隔符为两个或更多个空格。
这为我们提供了以下Python代码:
import io
import subprocess
import pandas as pd
output = subprocess.check_output(["wmic", "product", "list"], text=True)
df = pd.read_csv(io.StringIO(output), delimiter='[ ]{2,}', dtype={"InstallDate": "str"})
print(df)现在,您有了一个包含信息的数据帧,如下所示:
Description IdentifyingNumber InstallDate ... SKUNumber Vendor Version
0 Python 3.8.5 Executables (64-bit) {216A8530-DA4B-42FE-BDD4-DCDC1298FB6C} 20200819 ... 3.8.5150.0 None NaN
1 Python 3.8.5 Utility Scripts (64-bit) {C28BE172-9103-463D-9793-264434DBDC27} 20200819 ... 3.8.5150.0 None NaN
2 Python 3.8.5 Development Libraries (64-bit) {FA7816C5-12FB-4278-9437-E99AA9639E59} 20200819 ... 3.8.5150.0 None NaN
3 Python 3.8.5 Documentation (64-bit) {7211CFF5-CFE7-4B7C-A699-DB0E65DAF4BC} 20200819 ... 3.8.5150.0 None NaN
4 Python 3.8.5 Tcl/Tk Support (64-bit) {B0F29718-AB7A-40AF-8DF9-4E6129FFBCD4} 20200819 ... 3.8.5150.0 None NaN
.. ... ... ... ... ... ... ...Pandas允许非常简单的操作;例如,如果您想要一个日期列表,您可以这样做:df["InstallDate"].tolist()
https://stackoverflow.com/questions/64894054
复制相似问题