Python

【Python】『readlines()』関数を複数回使用した時の動作

アイキャッチ_ReadLins()を複数回使った場合の動作

『readlines()』関数を使用してファイルのデータを読込む時に思ったよう動かず、困ったことがあったので、忘れないようにメモとして残したいと思います。

事象

『readlines()』関数を使用してファイルを読込み、件数に応じた処理を行う時にデータが空になっていました。

with open(r'C:\Python\readlines\test.txt', 'r', encoding='UTF-8') as f:    
    if len(f.readlines()) > 0:
        print(f.readlines())
    else:
        print('END')

原因

『readlines()』関数はファイルポインタを末尾に進める為、2回目以降はデータが空となる仕様です。

対処

『readlines()』関数で読込んだデータを変数に格納してしまえば、データの保持が可能です。

with open(r'C:\Python\readlines\test.txt', 'r', encoding='UTF-8') as f:
    data = f.readlines()
    if len(data) > 0:
        print(data)
    else:
        print('END')