Python でファイルを削除
ここでは Python でファイルやディレクトリを削除する方法を紹介します。
目次
Python でファイルを削除する - os.remove()
os.remove(file) 関数を使うと、ファイル file を削除できます。
import os
os.remove('foo.txt') # foo.txt は削除される
ディレクトリは削除できません。
Python でディレクトリを削除する - os.rmdir()
os.rmdir(dir) 関数を使うと、ディレクトリ dir を削除できます。
import os
os.rmdir('dir1') # dir1 は空ならば削除される
ただし、削除するディレクトリは空でなければいけません。指定したディレクトリ内にファイルやサブディレクトリがあれば削除できません。
空でないディレクトリを os.remove() 関数で削除しようとすると、 OSError: [Errno 66] Directory not empty: 'dir1' というエラーが発生します。
Python で空のディレクトリツリーを削除する - os.removedirs()
os.removedirs(dirs) 関数を使うと、ディレクトリ dirs が空であれば削除されます。 さらに子ディレクトリを削除した後、親ディレクトが空になれば親ディレクトリも削除されます。
例えば、 dir1/dir2/dir3 というディレクトリの階層があり、どのディレクトリもファイルを含まないとします。 このとき、まず dir3 を削除し、それによって dir2 が空になれば dir2 も削除します。
空となった親ディレクトリを繰り返し削除し、空でなくなるところまで削除します。
import os
os.removedirs('dir1/dir2/dir3')
Python でディレクトリツリーを削除する - shutil.rmtree()
os.removedirs(dirs) 関数を使うと、ディレクトリ dirs 及びそれ以下のコンテンツが全て削除されます。 ディレクトリは空でなくても削除されます。
import shutil
shutil.rmtree('dir1')