2016-05-30 7 views
1

私はこのテキストファイルlog.txtを持っています。テキストファイルに複数回線を分割する方法はありますか?

1.a Receiver Type   : REC-1 
    Satellite System   : GPS 
    Serial Number   : A123 

1.b Receiver Type   : REC-2 
    Satellite System   : GPS 
    Serial Number   : B456 

1.c Receiver Type   : REC-3 
    Satellite System   : GPS 
    Serial Number   : C789 

「サテライトシステム」と「シリアル番号」のコロン「:」の後に値を表示するだけです。しかし、「Receiver Type」の行の前に3文字あるため、「Receiver Type」では同じことをすることはできません。私はこれを行うことができますどのような方法ですか?行を複数回分割する方法はありますか? Pythonを完全に新しくしました。だから私がボールを転がすのを助けるものは大いに感謝されるだろう。ありがとう。

これは現在コロンの後に 'Satellite System'と 'Serial Number'の値だけを表示しているコードです。

with open('log.txt', 'r') as Log: 
    for line in Log: 
     if line.split(':')[0].strip() == 'Satellite System': 
      sat_sys = line.split(':')[1].strip() 
      print sat_sys 

     if line.split(':')[0].strip() == 'Serial Number': 
      ser_num = line.split(':')[1].strip() 
      print ser_num 
+0

が、あなたはこのようにそれを行うことができます「あなたのものを行に入れてください」、「elif「衛星システム」」行に「別のものを実行する」エリフ「シリアル番号」行に「別のものを実行する」その他の「デフォルトのもの」があります。これは動作しませんか? – Pant

答えて

0

それは.strip()物事を台無しにしていない.splitを( ":")である:あなたがReceiver」場合 `行うことができます

with open('log.txt', 'r') as Log: 
    for line in Log: 
     header = line.split(':')[0] 
     if 'Satellite System' in header: 
      sat_sys = line.split(':')[1].strip() 
      print sat_sys 
     elif 'Serial Number' in header: 
      ser_num = line.split(':')[1].strip() 
      print ser_num 
     elif 'Receiver Type' in header: 
      rec_typ = line.split(':')[1].strip() 
      print rec_typ 
+0

パーフェクト:)ありがとう、私はあなたが答えたもので回避しよう。 –

関連する問題