Pythonでファイルを開く・閉じる(open, close)
この記事では、Pythonでファイルを扱うための基本的な方法である`open()`関数と`close()`メソッドについて解説します。ファイルのオープンモード、エンコーディング、エラー処理についても説明します。
目次
ファイルを開く (open())
`open()`関数は、ファイルを開くために使用します。引数にはファイルパスとオープンモードを指定します。
file = open("sample.txt", "w")
この例では、`"sample.txt"`という名前のファイルを書き込みモード(`"w"`)で開きます。ファイルが存在しない場合は新しく作成され、存在する場合は上書きされます。
ファイルを開くと、ファイルオブジェクトが返されます。このオブジェクトを使用して、ファイルを読み書きすることができます。
ファイルのオープンモード
オープンモードは、ファイルを開く目的を指定します。主なモードは以下のとおりです。
エンコーディング
テキストファイルを開く場合は、エンコーディングを指定することが重要です。エンコーディングを指定しないと、システムのデフォルトのエンコーディングが使用されます。
file = open("sample.txt", "w", encoding="utf-8")
この例では、`utf-8`エンコーディングを使用してファイルを書き込みモードで開きます。
ファイルを閉じる (close())
ファイルを開いたら、必ず`close()`メソッドを使用してファイルを閉じることが重要です。ファイルを閉じないと、データが破損したり、リソースリークが発生する可能性があります。
file.close()
ファイルオブジェクトの`close()`メソッドを呼び出すことで、ファイルが閉じられます。
with文によるファイルの扱い
`with`文を使用すると、ファイルを開いて閉じる処理を簡潔に記述できます。`with`文のブロックを抜けた時点で、ファイルは自動的に閉じられます。
with open("sample.txt", "w", encoding="utf-8") as file:
file.write("Hello, world!")
この例では、`with`文を使用してファイルを書き込みます。`with`文のブロックを抜けた時点で、`file`オブジェクトの`close()`メソッドが自動的に呼び出され、ファイルが閉じられます。
エラー処理
ファイルを開く際にエラーが発生する可能性があります。例えば、ファイルが存在しない場合や、アクセス権がない場合があります。エラー処理を行うことで、プログラムの安定性を高めることができます。
try:
with open("sample.txt", "r", encoding="utf-8") as file:
contents = file.read()
except FileNotFoundError:
print("ファイルが見つかりません")
except Exception as e:
print(f"エラーが発生しました: {e}")
関連記事
- Pythonでファイルに書き込む(write, writelines)
- Pythonでファイルを読み込む(read, readline, readlines)
- Pythonでファイルを追記モードで開く
- Pythonでファイルの上書き・削除
- Pythonでファイル・ディレクトリの存在確認(os.path.exists, os.path.isfile, os.path.isdir)
- Pythonでファイル・ディレクトリの操作(os, shutil, pathlib)
- Pythonでファイルをバイナリモードで読み書き
- Pythonでファイルのエンコーディングを指定して読み書き
- Pythonでwith文によるリソース管理
- Pythonでtry-except文で例外を捕捉