Pythonで2つ以上の複数ファイルを同時にopenしたい場合があると思います。
例えば、あるファイルを読み込んで何かしらの処理をし、結果を別のファイルに書き込むというような場合です。
素直にプログラムを書くと、
with open('./output.txt', mode='w') as fw:
with open('./input.txt', mode='r') as fi:
for line in fi:
i = int(line.strip())
i += 1 # 1を足すだけの処理
fw.write(str(i) + '\n')
となると思います。
input.txt
が
1
2
3
だとすると、output.txt
は
2
3
4
となります。
ただ、前記のプログラムはwith
句が入れ子になっており、インデントが深くなりスマートではありません。
実はこのプログラム、次のようにwith
句を一つにまとめて書くことができます。
with open('./input.txt', mode='r') as fi, open('./output.txt', mode='w') as fw:
for line in fi:
i = int(line.strip())
i += 1 # 1を足すだけの処理
fw.write(str(i) + '\n')
インデントも浅くなり少し(?)スマートになったと思います。