LoginSignup
23
33

More than 5 years have passed since last update.

Pythonでファイルを一行ずつ読んで処理する

Last updated at Posted at 2018-06-19

Python で別ファイルに記録したリストを読み込ませて処理しようとしたときに改行まで入ってきて面倒だったので備忘録。

特に何も考えずに書いたコード

f = open('listfile.txt', 'r')
line = f.readline()

while line:
    print(line)
    line = f.readline()
f.close()

listfile.txt の中身は ↓ みたいな感じ。

1111
2222
3333
4444

出力結果の期待値

そのまま ↓ みたいな感じ。

1111
2222
3333
4444

実際には ↓ のような感じ。

1111

2222

3333

4444

どうやら line には行末の改行コードまで含まれてる。

改行を削除する

printするだけなら read とかで良いかもしれないが、数万行の ID のリストを読み込ませて一行ごとに処理するとかだと不便。

ID の末尾の改行コードは処理に不要なので除去して処理したい、

って時には単純に、line.strip() で良いらしい。

f = open('listfile.txt', 'r')
line = f.readline()

while line:
    print(line.strip())
    line = f.readline()
f.close()

こうすると期待通り処理される。

1111
2222
3333
4444

write の時は改行はつかないのに readline は改行を含めて処理するらしい。

普段使ってないとなかなか覚えられない。

23
33
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
33