2016-06-27 7 views
-3
data = open("t.txt","r") 
list1 = [] 
while True: 
    text = data.readline() 
    count = { 
     "a": [], 
     "b": [], 
     "c": [], 
     "d": [] 
    } 
    for item in count: 
     if item in text or "Subject" in text: 
      list1.append(text) 
data.close() 
print(list1) 
+2

...なぜ辞書を作成してから、そのキーだけを反復するのですか?それを変更しない理由は何ですか? 'count =" abcd "'?また、 'while True' +' readline() 'を使うのではなく、' 'text in data:' 'abcd '':...' 'のファイルに対して繰り返し処理する必要があります。 – Bakuriu

+3

実際の質問では、ループがどのように終了するかはわかりません。だから、それは決して印刷物には及ばない。 –

+0

'data.readline()'の後ろに 'if not text:break'を追加します。 – cdarke

答えて

3

あなたのwhileループが問題のようです。それは "while True"です - Trueは常にTrueと等しいので、あなたのループは永遠にループし続けます。あなたの印刷リスト1がループの中にある場合は、それぞれの時間を印刷します。それがループの外にある場合、決して実行されません。

私はあなたがそれを壊すためにループにロジックを追加することができますが、私は非常に正直なところ、なぜあなたは外側のループを持っているこのコードから見ていないと思います。おそらく、FORループを実行してコードを実行してください。

これを確認するには、ループの最後に「break」を入力して終了してください。確認が済むと、あなたの投稿に表示されない理由がない限り、外側のループを完全に削除します。

0

あなたのループは問題です、それは永遠にループします!ファイル内のテキストをループしたい:

関連する問題