【Python】with()を利用したファイルの読み書きについて
1. with
ファイル操作においては、with open()という形で使用します。この構文を使うことで、ファイルを開いて処理を行い、処理が終わったら自動的にファイルを閉じることができます。
1.1. 基本的な構文
with open(ファイル名, モード) as 変数名:
処理
ファイル名: 開くファイルのパスを指定します。モード: ファイルの操作モードを指定します。主なモードは以下の通りです。'r': 読み込みモード(デフォルト)'w': 書き込みモード(ファイルが存在する場合は内容が上書きされます)'a': 追記モード(ファイルの末尾に書き込みます)'b': バイナリモード(rb,wbなどと組み合わせて使用)
2. 使い方
open()を使うけど、with構文なら自動で閉じてくれるから安心だよね!2.1. ファイルの読み込み
まずは、with構文を使ったファイルの読み込み方法を見ていきましょう。
# ファイルを読み込んで内容を表示する例
with open('example.txt', 'r') as f:
content = f.read()
print(content)
このコードでは、example.txtというファイルを読み込みモードで開いています。f.read()でファイルの内容を全て読み込み、contentという変数に格納しています。with構文を使っているため、f.close()を明示的に呼び出す必要はありません。
2.2. ファイルへの書き込み
次に、ファイルへの書き込みを行う例です。
# ファイルにテキストを書き込む例
with open('example.txt', 'w') as f:
f.write('Hello, World!')
このコードでは、example.txtというファイルを開き、Hello, World!という文字列を書き込んでいます。wモードを使用しているため、ファイルが存在しない場合は新しく作成され、既存のファイルがある場合は内容が上書きされます。
2.3. 追記モードでのファイル操作
追記モードを使うと、ファイルの末尾に新しいデータを追加することができます。
# ファイルにデータを追記する例
with open('example.txt', 'a') as file:
file.write('\nThis is an additional line.')
このコードでは、example.txtの末尾に新しい行を追加しています。aモードを使うことで、既存のデータを消すことなく、新しいデータを追加できます。
2.4. 応用:複数ファイルの同時操作
with構文では、複数のファイルを同時に開くこともできます。
# 複数のファイルを同時に開いて読み書きする例
with open('input.txt', 'r') as infile, open('output.txt', 'w') as outfile:
content = infile.read()
outfile.write(content)
このコードでは、input.txtというファイルを読み込み、output.txtというファイルに内容を書き込んでいます。複数のファイルを同時に扱う際も、with構文を使えばクローズ処理を忘れる心配がありません。
output.txtの内容が次のようにinput.txtの内容に更新されます。
3. まとめ
with構文は、Pythonにおけるファイル操作を簡素化し、リソースの管理を安全に行うための非常に便利な方法です。
【ポイント】
with構文を使うと、自動的にファイルがクローズされる- 読み込み、書き込み、追記の各操作を簡単に行える
- 複数のファイルを同時に扱うこともできる
check
Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!




