解析注册表文本转换为pandas

2024-09-24 22:28:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个注册表文本转储如下

[HKLM\CurrentControlSet\somerandomthing]

[HKLM\CurrentControlSet\somerandomthing\somerandomsub]
"key1"=hex(7)"1234aa\
     123451234567788\
     124123412341234
     1243"
"key2":C:\randomlocaltioninmydrive
"key3"-somerandomstuffwithanyoutput

这种情况持续了几天,多次重复,多次不同的键值对类型。你知道吗

如何将这些数据放入类似于下面输出的数据帧中

Path                                                  Type    Key      Value           
HKLM\CurrentControlSet\somerandomthing\somerandomsub  hex(7)  key1    1234aa1234512345677881241234123412341243
HKLM\CurrentControlSet\somerandomthing\somerandomsub  N/A     key2    C:\randomlocaltioninmydrive
HKLM\CurrentControlSet\somerandomthing\somerandomsub  N/A     key3    somerandomstuffwithanyoutput  

我试图使用configparser.rawconfigparser配置分析器无济于事。此数据集是原始数据集hklm.txt文件从注册表转储到windows框的文件。你知道吗


Tags: 文件数据文本注册表情况key2key1hex
1条回答
网友
1楼 · 发布于 2024-09-24 22:28:44

目前最有效的方法是将其放入数据帧: (对前面的答案进行了编辑,使之更好用)

import ConfigParser
import io



sample_config = r"""
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC]

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI]

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\XXX_DB]
"Driver"="C:\\Windows\\system32\\SQLSRV32.dll"
"Server"="192.168.1.1"
"Database"="AAA"
"LastUser"="bb"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\xxx_db]
"Driver"="C:\\Windows\\system32\\sqlncli11.dll"
"Server"="10.8.1.3"
"Database"="XXX"
"LastUser"="DDD"
"""

config = ConfigParser.RawConfigParser(allow_no_value=True)
config.readfp(io.BytesIO(sample_config))

newlist = []
for section in config.sections():
    for (key, val) in config.items(section):
        newlist.append([section, key, val])

df = pd.DataFrame(newlist)

以上返回:

0  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\XXX_DB    "driver"   
1  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\XXX_DB    "server"   
2  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\XXX_DB  "database"   
3  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\XXX_DB  "lastuser"   
4  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\xxx_db    "driver"   
5  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\xxx_db    "server"   
6  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\xxx_db  "database"   
7  HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\xxx_db  "lastuser"   

                                        2  
0   "C:\\Windows\\system32\\SQLSRV32.dll"  
1                           "192.168.1.1"  
2                                   "AAA"  
3                                    "bb"  
4  "C:\\Windows\\system32\\sqlncli11.dll"  
5                              "10.8.1.3"  
6                                   "XXX"  
7                                   "DDD" 

相关问题 更多 >