Python | remove()やrmtree()でファイル・ディレクトリの削除
Pythonで「os」モジュールのos.remove()
メソッドや「shutil」モジュールのshutil.rmtree()
メソッドを使った基本的なファイル・ディレクトリを削除する方法についての紹介です。
ファイルを削除する
「os」モジュールのos.remove()
メソッドを使ってファイルの削除が可能です。
import os
os.remove("target.txt")
os.remove()
メソッドのメモ
- os.remove()はディレクトリの削除はできない
- 対象のファイルが存在しない場合はエラーが出る
os.remove()
メソッドだけだと対象のファイルが存在しない場合にエラーが出るので、os.path.isfile()
メソッドでファイルの存在を確認してからファイルの削除をします。
os.path.isfile()
メソッドはファイルの存在を確認して存在した場合はTrue、存在しなかった場合はFalseを返します。
import os
if os.path.isfile("target.txt") == True:
os.remove("target.txt")
または、try
文を使って対象のファイルが存在しなかった場合はエラーの例外処理としてエラーとならないように処理することも可能です。
import os
try:
os.remove("target.txt")
except OSError as err:
pass
ディレクトリを削除する
「shutil」モジュールのshutil.rmtree()
メソッドでディレクトリを中身のファイルごと削除可能です。
import shutil
shutil.rmtree("target_dir/")
shutil.rmtree()
のメモ
- shutil.rmtree()は中身ごと指定のディレクトリを削除する
- 中身のディレクトリ階層も削除する
- 対象のディレクトリが存在しない場合はエラーが出る
os.rmtree()
メソッドだけだと対象のディレクトリが存在しない場合にエラーが出るので、os.path.isdir()でディレクトリの存在を確認してからファイルの削除をします。
os.path.isdir()
メソッドは対象のディレクトリの存在を確認して存在した場合はTrue、存在しなかった場合はFalseを返します。
import os
import shutil
if os.path.isdir("target_dir/") == True:
shutil.rmtree("target_dir/")
または、try
文を使って対象のディレクトリが存在しなかった場合はエラーの例外処理としてエラーとならないように処理することも可能です。
import shutil
try:
shutil.rmtree("target_dir/")
except OSError as err:
pass
ディレクトリ内の中身を一括削除する
shutil.rmtree()
メソッドでディレクトリとその中身を削除したあとで、os.makedirs()
メソッドでディレクトリを作成することでディレクトリを残したまま中身だけを削除した場合と同じ結果となります。
import os
import shutil
if os.path.isfile("target_dir/") == True:
shutil.rmtree("target_dir/")
os.makedirs("target_dir/")
※ os.makedirs()
メソッドは存在していた場合、オプション引数に「exist_ok=True」をつけていないとエラーとなります。
Python2.x系では削除したディレクトリとのパスが違っていたり、削除に失敗した時の為にos.makedirs()
メソッドに対して存在確認が必要となります。
try
文を使ってエラーの例外処理をいれた場合。
import os
import shutil
# ディレクトリを削除
try:
shutil.rmtree("target_dir/")
except OSError as err:
pass
# ディレクトリを作成
try:
os.makedirs("target_dir/")
except OSError as err:
pass
ディスカッション
コメント一覧
まだ、コメントがありません