Pythonでファイルの上書き・削除
この記事では、Python でファイルの上書きと削除を行う方法について説明します。os モジュールと pathlib モジュールを使った安全なファイル操作の方法を学びます。
目次
ファイルの上書き
Pythonでファイルの上書きは、書き込みモード('w')でファイルを開いて書き込むことで行います。ファイルが存在しない場合は新規作成されます。既存のファイルを開くと、内容はすべて削除されてから新しい内容が書き込まれます。
try:
with open('output.txt', 'w') as f:
f.write('新しいテキスト')
except Exception as e:
print(f"エラーが発生しました: {e}")
この例では、'output.txt' というファイルに '新しいテキスト' を書き込んでいます。ファイルが存在すれば上書きされ、存在しなければ新規に作成されます。エラー処理は`try...except`ブロックで行われています。
try:
with open('my_file.txt', 'w') as f:
f.write('This is some text.')
print("ファイル 'my_file.txt' が作成または上書きされました。")
except OSError as e:
print(f"ファイル操作中にエラーが発生しました: {e}")
この例では、ファイルが存在しない場合に作成され、ファイルが存在する場合には上書きされます。`OSError`例外をキャッチしてエラーメッセージを表示しています。
ファイルの削除
Pythonでファイルを削除するには、osモジュールのremove()関数を使用します。
import os
try:
os.remove('output.txt')
print('ファイルが削除されました。')
except FileNotFoundError:
print('ファイルが見つかりません。')
except OSError as e:
print(f'ファイル削除中にエラーが発生しました: {e}')
この例では、'output.txt'というファイルを削除しようとします。ファイルが存在しない場合はFileNotFoundError、その他のエラーが発生した場合はOSError例外が投げられます。
import os
file_path = 'delete_me.txt'
try:
os.remove(file_path)
print(f"ファイル '{file_path}' が削除されました。")
except FileNotFoundError:
print(f"ファイル '{file_path}' は見つかりませんでした。")
except PermissionError:
print(f"ファイル '{file_path}' を削除する権限がありません。")
except OSError as e:
print(f"ファイル '{file_path}' の削除中にエラーが発生しました: {e}")
この例では、エラー処理をより詳細に行い、FileNotFoundErrorとPermissionErrorを個別に処理します。
エラー処理と例外処理
ファイル操作では、ファイルが存在しない、アクセス権がないなどのエラーが発生する可能性があります。try...exceptブロックを使用してエラーを処理し、プログラムがクラッシュするのを防ぎましょう。
import os
try:
# ファイル操作
os.remove('nonexistent_file.txt')
except FileNotFoundError:
print('ファイルが見つかりません')
except OSError as e:
print(f'エラーが発生しました: {e}')
この例では、存在しないファイルを削除しようとするため、FileNotFoundErrorが発生します。適切な例外処理により、エラーメッセージが表示されプログラムは継続します。
pathlibを使ったより安全な方法
pathlibモジュールを使うと、ファイルパスをオブジェクトとして扱うことができ、より安全で読みやすいコードを書くことができます。
from pathlib import Path
file_path = Path('my_file.txt')
try:
file_path.unlink()
print(f"ファイル '{file_path}' が削除されました。")
except FileNotFoundError:
print(f"ファイル '{file_path}' は見つかりませんでした。")
except OSError as e:
print(f"ファイル '{file_path}' の削除中にエラーが発生しました: {e}")
pathlib.Path.unlink()メソッドは、os.remove()関数と同様の機能を持ちます。ただし、pathlibはオブジェクト指向のため、コードがより明確で安全になります。
関連記事
- Pythonでファイルを開く・閉じる(open, close)
- Pythonでファイルに書き込む(write, writelines)
- Pythonでファイルを読み込む(read, readline, readlines)
- Pythonでファイルを追記モードで開く
- Pythonでファイル・ディレクトリの存在確認(os.path.exists, os.path.isfile, os.path.isdir)
- Pythonでファイル・ディレクトリの操作(os, shutil, pathlib)
- Pythonでファイル・ディレクトリのコピー・移動(shutil.copy, shutil.move)
- Pythonでディレクトリを作成・削除(os.mkdir, os.makedirs, os.rmdir, shutil.rmtree)
- Pythonで一時ファイル・一時ディレクトリを作成(tempfile)
- Pythonでファイルをバイナリモードで読み書き