首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于获取已安装软件列表以及安装日期的Python脚本

用于获取已安装软件列表以及安装日期的Python脚本
EN

Stack Overflow用户
提问于 2020-11-18 21:28:52
回答 1查看 29关注 0票数 1

我正在尝试创建一个python脚本,可以提取安装在windows系统上的软件以及安装日期,我几乎没有研究过提取软件信息,但不确定如何才能获得日期,找到下面的脚本

代码语言:javascript
运行
复制
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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-18 21:54:48

看起来wmic product get name没有返回安装日期,所以我们需要做的第一件事就是获取安装日期。wmic product list会返回足够多的数据(可能会有进一步限制的方法)。

然后,我们需要一种方法来解析输出。我使用pandas和正则表达式来指定分隔符为两个或更多个空格。

这为我们提供了以下Python代码:

代码语言:javascript
运行
复制
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)

现在,您有了一个包含信息的数据帧,如下所示:

代码语言:javascript
运行
复制
                                           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()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64894054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档