どーもTakeです。
この記事では、Python で「ファイル」と「フォルダ(ディレクトリ)」を削除する方法について解説します。
Pythonで「ファイル」と「フォルダ(ディレクトリ)」する処理自体は簡単ですが、
「ファイル」が存在しなかったり、「フォルダ(ディレクトリ)」内になんらかのファイルが存在する場合、
エラーが発生し正常に処理が行われないことがあります。
この記事では、削除処理はもちろんのこと発生しうるエラーへの対処方法についても解説します。
- ファイルを削除する方法
- ワイルドカードで複数のファイルを削除
- (ファイル削除時)「指定されたファイルが見つかりません。」と表示された場合
- フォルダ(ディレクトリ)を削除する方法
- (フォルダ削除時)「ディレクトリが空ではありません。」と表示された場合
- (フォルダ削除時)「指定されたファイルが見つかりません。」と表示された場合
ファイルを削除する方法
まずは基本的なファイルの削除方法について説明します。
下記ソースコードのように、まず「os」モジュールをインポートさせます。
そして「os.remove」メソッドを利用し、変数「filename」で指定したファイルを簡単に削除できます。
1 2 3 4 5 |
import os filename = 'test.txt' os.remove(filename) |
ワイルドカードで複数のファイルを削除
ワイルドカードで複数のファイルを削除する場合、「glob」モジュールを利用します。
下記ソースコードのように「os」と「glob」モジュールをインポートさせ、
「glob」モジュールのglobメソッドで「ワイルドカード」のファイル名を指定しそのファイル一覧を取得します。
そのファイル一覧に対して「for文」でループさせ「os.remove」で削除させればOKです。
1 2 3 4 5 |
import os import glob for filename in glob.glob('test*.txt'): os.remove(filename) |
「指定されたファイルが見つかりません。」と表示された場合
ファイル削除をする際、削除対象のファイルが存在しない場合
「指定されたファイルが見つかりません。」と表示されることがあります。
その場合は削除する前にファイルが存在することをチェックする必要があります。
下記ソースコードのように「if os.path.exists(filename):」という一文を加えることで
ファイルが存在する場合のみ削除処理を行うようにできます。
1 2 3 4 5 6 |
import os filename = 'test.txt' if os.path.exists(filename): os.remove(filename) |
フォルダ(ディレクトリ)を削除する方法
つぎに基本的なフォルダの削除方法について解説します。
これもファイル削除と同様に「os」モジュールをインポートさせ「os」モジュールの「rmdir」メソッドを利用することで
指定したフォルダ名を削除することができます(下記ソースコードのように行います)。
1 2 3 4 5 |
import os folderpath = 'tmp' os.rmdir(folderpath) |
注意点として、上記はフォルダの中身が空の場合のみ実行可能です。
つまり何らかのファイルがある場合は「ディレクトリが空ではありません」と表示されます。
「ディレクトリが空ではありません。」と表示された場合
フォルダを削除する際に、「ディレクトリが空ではありません」と表示された場合は
下記のソースコードのように処理を行います。
まず「shutil」モジュールをインポートさせ、「shutil」モジュールの「rmtree」メソッドを利用することで
フォルダ(ディレクトリ)ごと削除することが可能となります。
1 2 3 4 5 |
import shutil folderpath = 'tmp' shutil.rmtree(folderpath) |
「指定されたファイルが見つかりません。」と表示された場合
フォルダ削除をする際、削除対象のファイルが存在しない場合
ファイル削除時と同様に「指定されたファイルが見つかりません。」と表示されることがあります。
その場合、削除処理を行う前に「フォルダ」が存在することを確認し、存在すれば削除処理を行うようにすればOKです。
下記ソースコードのように「if os.path.exists(folderpath):」という一文を加えることで
ファイルが存在する場合のみ削除処理を行うようにできます。
1 2 3 4 5 6 |
import shutil folderpath = 'tmp' if os.path.exists(folderpath): shutil.rmtree(folderpath) |
最後に
いかがでしたでしょうか?
この記事をもとに Python の「ファイル」と「フォルダ(ディレクトリ)」処理について参考にしていただければ幸いです。
ではでは。