Pythonで一行ずつファイルを読み込むには?
readline()関数は、ファイルから1行ずつ読み込むために使用できます。readline()関数は呼び出されるたびにファイルを1行ずつ読み込み、ファイルポインタを次の行へ移動させます。ファイルの読み込みが終了すると、readline()関数は空文字列を返します。
次のコード例は、ファイルから行単位で読み取る方法を示します。
with open('filename.txt', 'r') as file:
line = file.readline()
while line:
print(line)
line = file.readline()
上のコードでは、まず open() 関数でファイルを開いて、そのファイルオブジェクトを変数 file に代入します。次に、readline() 関数で 1 行目を読み込んで、それを変数 line に代入します。while ループ内で、line の内容を出力してから、readline() 関数で次の行を読み込みます。line が空文字列になったら、ファイルの読み込みが完了したことがわかり、ループは停止します。
注意を要する点はopen()関数を使用してファイルをオープンする時、ファイルのパスとオープンモードを指定する必要があることです。上の例では、’filename.txt’がファイルのパスで、’r’はファイルオープンモードです。読み取り専用でファイルを開くことを表しています。実際のニーズに応じてパスとモードを変更してください。
なお、1行ずつファイルを読み込む方法は他にも、forループを使ったり、ファイルオブジェクトのイテレータ属性を利用する方法もあります。以下に、2つの異なる書き方を示します。
# 方法一:使用for循环
with open('filename.txt', 'r') as file:
for line in file:
print(line)
# 方法二:使用迭代器
with open('filename.txt', 'r') as file:
lines = iter(file)
for line in lines:
print(line)
この2つの方法の仕組みと効果は、前の例と同様です。