2016-08-25 3 views
0

私はPythonを使用してテキストファイルを読み込み、特定の行を出力したいと思います。問題は、 "nominal"という単語で始まる行を印刷したいということです。これを行う方法はわかっています。また、これに続く行は、特定の文字列では認識できません。あなたはそれを行うことができるいくつかのコード行を指摘できますか?善意でPython、特定の行を選択

+7

あなたのコードをこれまでに示していますが、何を試みましたか – depperm

+4

あなたにコードを書くことが望ましいようです。多くのユーザーは、苦労しているコーダーのコードを作成したいと考えていますが、通常、ポスターが既に問題を解決しようとしているときにのみ役立ちます。この努力を実証する良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、予想される出力、実際に得られる出力(コンソール出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ]と[ask]を確認してください。 –

+0

>これを行うことができるいくつかのコード行を教えてください。 <はい:https://github.com/ranxian/rate3/blob/d226de257360a477b0958ec0a22b4b201a2b8b65/tools/cpp/test/convert.py#L5 – myaut

答えて

0

、これはあなたには、いくつかの努力をコーディングし、表示を開始するのに役立ちますという仮定の下、ここに行く:

file_to_read = r'myfile.txt' 

with open(file_to_read, 'r') as f_in: 
    flag = False 
    for line in f_in: 
     if line.startswith('nominal'): 
      print(line) 
      flag = True 
     elif flag: 
      print(line) 
      flag = False 

それはアウトオブボックス動作しますが、いくつかを過ごすためにしてみてください可能性がありますそれを経て、あなたは間違いなくそれの背後に論理を得るでしょう。 pythonのテキスト比較では、大文字と小文字が区別されます。

0

ファイルが大きすぎない場合は、リスト内のすべてを置くことができます。そして、

def printLines(fname): 
    with open(fname) as f: 
     lines = f.read().split('\n') 
     if len(lines) == 0: return None 
     if lines[0].startswith('Nominal'): print(lines[0]) 
     for i, line in enumerate(lines[1:]): 
      if lines[i-1].startswith('Nominal') or line.startswith('Nominal'): 
       print(line) 

例えばprintLines('test.txt')はあなたが望むことをします。

関連する問題