0

.ldifと2つの文字列を受け取るPythonコマンドラインスクリプトを書いています。文字列は、.ldifファイルの各レコードの最後に挿入する必要のあるキーと値に対応しています。ただし、レコードの最後にいることがわかるように、.ldifファイルを解析する方法を理解するのに問題があります。レコードの最後に到達したら、2つの文字列(Key:Value)をコロンで挟んでファイルに書き込む必要があります。

だから基本的に私はする必要があります:

  1. コマンドラインから引数を解析します(.ldif、string1、string2)
  2. .ldifに追加する文字列を作成します
  3. .ldifを開き、各レコードの最後までシークします。レコードの終わりに達したら、string1とstring2から作成した文字列を書き込む必要があります。
  4. .ldifのEOFが表示されたら、更新されたレコードを含む.ldifファイルを返す必要があります。

前:

    #example.ldif
    dn:Aamir_005_000
    cn:Aamir_25
    名:アーミール

    dn:Saul_024
    cn:Saululite
    名:ソール

後:python myscript.py ./example.ldif sillyname syllabear

    #example.ldif
    dn:Aamir_005_000
    cn:Aamir_25
    名:アーミール
    sillyname:syllabear

    dn:Saul_024
    cn:Saululite
    名:ソール
    sillyname:syllabear

4

2 に答える 2

0

python-ldap とその ldif モジュール

Python は、 python-ldap プロジェクトとそのldifモジュールで LDAP レコードをサポートしています。

構造化されたファイル形式と同じように、堅牢なパーサーとジェネレーターを使用して、レコードを読み取り、操作し、書き戻す必要があります。

正規表現などのハックを使用して自分でファイルを解析しようとしているのではなく、ファイル内の何かが次の週、その次の週、そしてその数日後に変更されたときにコードが壊れてしまうだけです。

XML スタンザを XML ファイルに挿入しようとすることもありません。XML パーサーを使用して、必要なものを挿入し、それを書き戻します。

于 2012-07-02T18:54:16.807 に答える