Python | remove()やrmtree()でファイル・ディレクトリの削除

Pythonでos.remove()やshutil.rmtree()を使った基本的なファイル・ディレクトリを削除する方法についての紹介です。
ファイルを削除する
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.rmtree()でディレクトリを中身のファイルごと削除可能です。
import shutil
shutil.rmtree('target_dir/')
shutil.rmtree()のメモ
- shutil.rmtree()は中身ごと指定のディレクトリを削除する
- 中身のディレクトリ階層も削除する
- 対象のディレクトリが存在しない場合はエラーが出る
os.rmtree()だけだと対象のディレクトリが存在しない場合にエラーが出るので、os.path.isdir()でディレクトリの存在を確認してからファイルの削除をします。
os.path.isdir()は対象のディレクトリの存在を確認して存在した場合はTrue、存在しなかった場合はFalseを返します。
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
ディスカッション
コメント一覧
まだ、コメントがありません