如何从文本文件集合中提取特定值

2024-09-30 10:38:03 发布

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

我需要一个文件集的标签(例如,我需要一个文件的集合)。解决这个问题的一般方法是什么?在

我也读过这篇文章:"Retrieve Variable Values from Python"但它似乎不适用于我所面临的一些情况(比如用tab代替:

我只想知道解决这个问题的最合适的方法,而不管使用什么语言。在

假设我有这样的东西:

Name: Backup Operators  SID: S-1-5-32-551   Caption: COMMSVR21\Backup Operators Description: Backup Operators can override security restrictions for the sole purpose of backing up or restoring files  Domain: COMMSVR21   
COMMERCE/cabackup
COMMSVR21/sys5erv1c3

我希望能够访问/检索Backup Operators的值,并得到COMMERCE/cabackup&;COMMSVR21/sys5erv1c3。在

你会怎么做?在

我所想的是阅读整个文本文件,正则表达式搜索,可能还有一些if-else语句。这有效吗?或者把文本文件解析成数组并检索它?我不确定。在

就像另一个例子说:

^{pr2}$

如何检查文本文件中的Policy = MaximumPasswordAge并返回值45?在

谢谢!在

p/s——我可能是用Python(零知识,所以可以随时获取)或Java来完成这项工作

pp/s——我刚意识到没有扰流板标签。嗯

例如,日志: 具有目录权限的日志:

C:\:
    BUILTIN\Administrators  Allowed:    Full Control
    NT AUTHORITY\SYSTEM Allowed:    Full Control
    BUILTIN\Users   Allowed:    Read & Execute
    BUILTIN\Users   Allowed:    Special Permissions: 
            Create Folders
    BUILTIN\Users   Allowed:    Special Permissions: 
            Create Files
    \Everyone   Allowed:    Read & Execute
    (No auditing)

C:\WINDOWS:
    BUILTIN\Users   Allowed:    Read & Execute
    BUILTIN\Power Users Allowed:    Modify
    BUILTIN\Power Users Allowed:    Special Permissions: 
            Delete
    BUILTIN\Administrators  Allowed:    Full Control
    NT AUTHORITY\SYSTEM Allowed:    Full Control
    (No auditing)

另一个包含以下内容:

    Audit Policy
    ------------
        GPO: xxx & yyy Servers
            Policy:            AuditPolicyChange
            Computer Setting:  Success

        GPO: xxx & yyy Servers
            Policy:            AuditPrivilegeUse
            Computer Setting:  Failure

        GPO: xxx & yyy Servers
            Policy:            AuditDSAccess
            Computer Setting:  No Auditing

这是制表符分隔的:

User Name   Full Name   Description Account Type    SID Domain  PasswordIsChangeable    PasswordExpires PasswordRequired    AccountDisabled AccountLocked   Last Login
53cuR1ty        Built-in account for administering the computer/domain  512 S-1-5-21-2431866339-2595301809-2847141052-500   COMMSVR21   True    False   True    False   False   09/11/2010 7:14:27 PM
ASPNET  ASP.NET Machine Account Account used for running the ASP.NET worker process (aspnet_wp.exe) 512 

Tags: thenameforreadexecutepolicyusersbackup
1条回答
网友
1楼 · 发布于 2024-09-30 10:38:03

我总是把Python推到人们的脸上;)

我建议查看Regex:http://docs.python.org/howto/regex.html,因为它可能适合您的需要。我不会为您这样做(因为我做不到),但我知道如果您的文件是冒号分隔的键/值对,并用换行符分隔,那么这将起作用。下面是一个快速入门(可能有用):

regex = '(.*):( *)(.*)\n'

这将匹配三个组(希望如此):冒号前面的一个组(第1组)、空格(第2组,可以丢弃)以及该组和新行之间的文本(第3组)。在

玩这个(我不想有一个regex动脉瘤,所以这是目前我所能帮助的)。祝你好运!在

相关问题 更多 >

    热门问题