如何从文本文件集合中提取某些值

时间:2011-01-06 03:42:30

标签: java python text text-parsing pyparsing

说,我有一组我需要处理的文本文件(例如,搜索某个标签并提取值)。解决这个问题的一般方法是什么?

我也读过这个:"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语句。这有效吗?或者可能将文本文件解析为某个数组并检索它?我不确定。

在另一个例子中说:

        GPO: xxx & yyy Servers
            Policy:            MaximumPasswordAge
            Computer Setting:  45

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

谢谢!

p / s - 我可能在Python中做这件事(零知识,所以在运行中选择它)或Java

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

-

E.g。日志: 使用目录权限记录:

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 

1 个答案:

答案 0 :(得分:1)

我总是将Python推向人们的脸;)

我建议您查看正则表达式:http://docs.python.org/howto/regex.html,因为它可能符合您的需求。我不会为你做的(因为我做不到),但是我知道如果你的文件是由换行符分隔的以冒号分隔的键/值对,这将有效。这是一个快速入门(可能会有效):

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

这匹配三个组(希望如此):冒号前的组(组1),空格(组2,可以丢弃),以及它与新行(组3)之间的文本。

玩那个(我不想要一个正则表达式动脉瘤,所以现在我可以提供帮助)。祝你好运!