2011-01-06 21 views
0

私は、処理する必要があるテキストファイルのコレクションを持っています(たとえば、特定のラベルを検索して値を抽出するなど)。問題に取り組むための一般的な方法は何でしょうか?テキストファイルのコレクションから特定の値を抽出する方法

私もこれを読んで:"Retrieve Variable Values from Python"をしかし、それは私が直面している例いくつかには適用できないと思われるにかかわらず、私はちょうど問題に取り組むための最も適切な方法を知りたい

(のようなtabではなく:の使用されています)使用される言語。私はBackup Operatorsの値を取得し、見返りにCOMMERCE/cabackup & COMMSVR21/sys5erv1c3を取得/アクセスできるようにしたい

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 

は、私のようなものを持っていると言います。

どうすればよいですか?

私が考えていたのは、テキストファイル全体、正規表現検索、おそらくelse文があります。これは効果的ですか?または、おそらくいくつかの配列にテキストファイルを解析し、それを取得する?よく分かりません。別の例では

などは言う:

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

はどのようにPolicy = MaximumPasswordAge用のテキストファイルをチェックして、値45を返すでしょうか?

ありがとうございます!

P/S - Iは、PP/sの

パイソン(ゼロ知識、その場でそれを拾っ)またはJava

でこれをやっているかもしれない - 私は何のスポイラータグはありませんことに気づきました。 Hmm

-

たとえば、ディレクトリのアクセス権を持つ ログ:ログの

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) 

次のもう一つの1:人のに

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 
+0

入力ファイルの構文を自由に決めることができれば、普通のPythonコードとして書くことができます! –

+0

こんにちは、いいですね。またはもっと楽しくするために、Lisp;) – Blender

+0

@Vijay Mathew:こんにちは。それはどういう意味ですか?あなたは言い換えていただけますか?私が正しくあなたを得るならば、入力ファイルは常に同じフォーマットです。 @Blender:ああ、神Lisp。 –

答えて

1

私はいつも突き出すパイソン:

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 

これは、タブは1を区切りです顔;)

私はRegexを見ることをお勧めします:http://docs.python.org/howto/regex.html、あなたのニーズに合うかもしれません。私はあなたのために(私はできないので)それをしませんが、あなたのファイルが改行文字で区切られたコロンで区切られたキー/値のペアであれば、これがうまくいくことが分かります。ここでは、クイックスタートは(働く可能性があります)です:コロンの前のグループ(グループ1)、スペース(捨てることができ、グループ2、)、および:

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

これは、三つのグループ(願わくば)と一致しますその行と新しい行の間のテキスト(グループ3)。

これで遊んでください(私は正規表現の動脈瘤を持っているとは思わないので、今のところ助けてください)。がんばろう!

+0

@Blender:テキストファイル全体を解析し、 'regex'を使って必要な値をフィルタリングするべきだと言っていますか?まあ、確かに、私は同様にXDのお礼ありがとう、正規表現の動脈瘤を予期しています –

+0

その構文が一貫している場合は、確かに。もしそうでなければ、物事は本当に醜いかもしれません。より大きなサンプルチャンクをアップロード/投稿できますか?私はサンプルスクリプトを書くことができる... – Blender

+0

いくつかのサンプルを追加 –

関連する問題