2017-07-03 4 views
-1

検索した文字列をいくつかのサブ要素に分割して情報を見つける方法を見つけようとしています。 私のテキストは、この構造を有する:Python:aの後の文字列を別の要素に分割する

INPUT_1_NAME=INPUT_1_NAME,INPUT_1_SDI_ERRCNT=0,INPUT_1_STANDARD=625/25i,INPUT_1_STATE=OK,INPUT_1_TYPE=HD/SD/3G SDI,INPUT_2_IDENT=2,INPUT_2_NAME=INPUT_2_NAME,INPUT_2_SDI_ERRCNT=0, 

私のスクリプトは、これまでのところです:

with open('Test.rtf') as f: 
    for line in f: 
     if 'NAME=NEQ1-VIF2601' in line: 

私は、デバイスNEQ1-VIF2601の情報については、全体のテキストファイルで検索しました。今、私はこの文字列のINPUT_1_SDI_ERRCNT情報を探したいです

+1

Pythonのドキュメントがあまりに 'somestring.split(...)'、あなたの友達です。 – Morb

+1

私はまだあなたがしようとして何を、取得していない。uはあなたの質問に多くの情報を追加することができます。入力、の各出力を意味し、詳細は –

+0

私の入力はTest.rtfですサーバーから生成されたテキストファイルですNAME = NEQ1-VIF2601というデバイスを除外しました。新しいファイルに書き込むにはINPUT_1_SDI_ERRCNT = 0の情報を書き出してください。 –

答えて

0

このような意味ですか?これは、カンマですべての行を分割し、left(等号の左側)とright(等しい-signの右側)

with open('Test.rtf') as f: 
     for line in f: 
      for element in line.split(","): 
       left, right = element.split("=")[0], element.split("=")[1] 
+0

私はそれが正しい方法だと思います。私はプロジェクトのために必要なので、私は昨日Pythonで始めたことは申し訳ありません。 基本的には、INPUT_1_SDI_ERRCNTの値を除外します。 –

+1

要素に '='が複数ある場合はどうなりますか? '' a = 1 = 2 ''?あなたのコードは '= 2'部分を単に破棄します。エラーが欲しいですか? 'left、right = element.split(" = ")'を使用してください。 '= 2 '部分が必要ですか? 'left、right = element.split(" = "、maxsplit = 1)'を使用してください。あなたは、ありがとうif文 'right'変数は、ご希望の情報 –

+0

:) – talaub

0

ノートにすべての結果の要素を分割します: -ていることを確認してくださいときにあなたは非常に簡単かつ迅速に解決策を得ることができるように他の人には理解できるようにする必要があります。

解決策は次のとおりです。あなたが取得し、「INPUT_1_SDI_ERRCNTは、新しいリスト内に存在すると、この新しいリストから値をフェッチするかどうかをチェックします新しいリストし、「」で入力文字列を分割することができ

ソリューション: -

find_str = 'INPUT_1_SDI_ERRCNT' 
for a in l: 
    k = a.split('=') 
    if k[0] == find_str: 
     print(k[1]) 
関連する問題