web-dev-qa-db-ja.com

readlineを使用してテキストファイルPython 3を読み取る

私はこれに何時間も取り組んでいましたが、うまくいかないので、助けていただければ幸いです!私の質問は、関数.readline()を使用してテキストファイルの最後まで読み取る方法ですか? .readlines()も機能することは知っていますが、一度に1行ずつ処理しようとしています。

これまでのところ、私のコードに私が持っているものは次のとおりです。

    a = open("SampleTxt.txt","r")

    While True:

        a.readline()

私の問題は、これを実行すると無限ループが発生することです。もう行を読み取れなくなったら、それを停止してはいけませんか?

15
Code971

a.readline()は、使用可能なデータがなくなると''空の文字列を返します。これを確認してから、whileを壊す必要があります。例:

while True:
    line = a.readline()
    if not line: 
        break

純粋に学習目的ではない場合は、実際にwithステートメントとforループを使用して、ファイルを1行ずつ処理する必要があります。

with open('SampleTxt.txt') as fin:
    for line in fin:
        pass # do something

あなたの意図はより明確であり、withブロックを使用することで、例外またはブロックの終了時にfileobjが解放されます。

24
Jon Clements