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 は改行を含めて処理するらしい。
普段使ってないとなかなか覚えられない。