いくつかの検索基準に基づいて証明書のリストからsubjectDNを取得するPythonコードのセットがあります。各証明書のすべての情報は、行単位で行われます。 OU = "組織単位"、CN = "証明書の名前"は、次のとおりです。SubjectDNデータの再フォーマットPythonを使用して
C = "ISOコード"、ST = "地域"、L = "地域"、O =
私のファイルの一つの例は次のようになります。
C = US、ST =カリフォルニア州、L =オークランド、O = Acmeの(株)、OU = Webサービス、CN = www.acme.com
C = US、ST =カリフォルニア、L =オークランド、O = Acme Ltd.、OU = Webサービス、CN = portal.acme.com
C = US、ST = California、L = Oakland、O = Acme Ltd.、OU = Web Services、CN = sar
はbusinessCategory =民間組織、juridictionCountry = US、C =:私は通常、非常に簡単に見えるが、これらの行の一部は、追加データを含むことになり、作業CSVファイルにこれを変換したいdine.acme.com
米国、ST =カリフォルニア州、L =オークランド、O = Acme Ltd.、OU =ウェブサービス、CN = www.acme.com
この追加データは、すべての列をライン外に投げる。
私はこのデータで2つのことをしたいと思います。
- 最初の例のフィールドのみを各列のCSVファイルに表示したいと思います。 C、ST、L、O、OU、CN(さまざまな証明書にある奇妙なフィールドは省略しています)。
- 各値から "C ="または "ST ="を省略したいと思います。
私はCSVモジュールを使用しようとしましたが、このデータは今のところまったく同じ形式でしか取得できません。私はまた、Python内のreモジュールを使用していくつかの行を書き直そうとしましたが、reとの表現には非常に混乱しています。
私が持っていたアイデアは、私が持っている出力ファイルの各行を読み込み、必要なフィールドを探して書き直すために各行にforループを追加することでした。次のようなものがあります。
本質的には、入力ファイルの各行に対してこの機能を実行します。次のようなものがあります:
with open(...) as f:
for line in f:
rewrite()
これは良い方法ですか、それとも簡単な方法ですか?誰かがこれを行う正規表現で私を助けることができますか?
私はそれを試しましたが、奇妙なエントリのために失敗しました。今はいつも、私が望むすべての価値を持っているだけでなく、いくつかのエクストラを持っている行があります。あなたのコードをしようとすると、私は次のようになる:AssertionError:6列が渡され、渡されたデータには8列がある。あなたの提案を試みる前に、これらのエントリを探して削除する方法はありますか? "CN = some_text"を完全に削除する方法(CN =でない場合のみ、 "businessCategory = some_text"などのフィールドになります) – Eddi
私はちょっと乱暴にしました。私がしたことです: 'result = open(" string.txt "、" r ")' 'file_read = result.read()' 'rm = re.sub(r '[\ w] {6,19} =([^。\、] +) '、 ""、file_read) ' 私のサブの唯一の問題は、カンマがまだ含まれているため、レコードは、C =データ、L =データのように見えます。等。 – Eddi