logo

Python を使用してディレクトリまたはファイルを削除する

この記事では、Python でファイルとディレクトリを削除 (削除) する方法について説明します。 Python には、ファイルとディレクトリを削除するためのさまざまなメソッドと関数が用意されています。必要に応じてファイルを削除できます。

Python が提供するさまざまなメソッドは次のとおりです。



os.remove() メソッドを使用してファイル/ディレクトリを削除する

OSモジュール Python では、オペレーティング システムと対話するための関数が提供されます。 OS モジュール内のすべての関数が上昇します OSエラー ファイル名とパスが無効またはアクセスできない場合、またはその他の引数が正しい型であるにもかかわらずオペレーティング システムで受け入れられない場合。

Python の os.remove() メソッド ファイルパスを削除または削除するために使用されます。この方法 ディレクトリを削除または削除できません 。指定されたパスがディレクトリの場合、メソッドによって OSError が発生します。

os.remove() の構文

構文: os.remove(path, *, dir_fd = なし)



パラメータ: パス: ファイルパスを表すパスのようなオブジェクト。パスのようなオブジェクトは、パスを表す文字列またはバイト オブジェクトです。

    dir_fd (オプション): ディレクトリを参照するファイル記述子。このパラメータのデフォルト値は「なし」です。指定されたパスが絶対パスの場合、dir_fd は無視されます。

注記: パラメータ リストの「*」は、後続のすべてのパラメータ (ここでは「dir_fd」) がキーワード専用パラメータであり、位置パラメータとしてではなく名前を使用して提供できることを示します。

戻り値の型: このメソッドは値を返しません。



例 1: Python でファイルを削除する

フォルダー内に次のファイルが含まれているとします。

上記フォルダーから file1 を削除したいと考えています。以下は実装です。

Python3




# Python program to explain os.remove() method> # importing os module> import> os> # File name> file> => 'file1.txt'> # File location> location>=> 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/'> # Path> path>=> os.path.join(location,>file>)> # Remove the file> # 'file.txt'> os.remove(path)>

>

>

出力:

例 2: 絶対パスを使用してファイルを削除する

指定されたパスがディレクトリの場合。

Python3




# Python program to explain os.remove() method> # importing os module> import> os> # Directory name> dir> => 'Nikhil'> # Path> location>=> 'D:/Pycharm projects/techcodeview.com/Authors/'> path>=> os.path.join(location,>dir>)> # Remove the specified> # file path> os.remove(path)> print>(>'% s has been removed successfully'> %> dir>)> # if the specified path> # is a directory then> # 'IsADirectoryError' error> # will raised> # Similarly if the specified> # file path does not exists or> # is invalid then corresponding> # OSError will be raised>

>

>

出力:

Traceback (most recent call last): File 'osremove.py', line 11, in os.remove(path) IsADirectoryError: [Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'>

例 3: 削除する前にファイルが存在するかどうかを確認してください

os.remove() メソッド使用時のエラー処理。

Python3




# Python program to explain os.remove() method> # importing os module> import> os> # path> path>=> 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'> # Remove the specified> # file path> try>:> >os.remove(path)> >print>(>'% s removed successfully'> %> path)> except> OSError as error:> >print>(error)> >print>(>'File path can not be removed'>)>

>

>

出力:

[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed>

注記: os.remove() の詳細については、ここをクリックしてください。

os.rmdir() メソッドを使用したファイル/ディレクトリの削除

Python の os.rmdir() メソッドは、空のディレクトリを削除または削除するために使用されます。 OSエラー 指定されたパスが空のディレクトリではない場合に発生します。

os.rmdir() の構文

構文: os.rmdir(パス, *, dir_fd = なし)

パラメータ:

    path: ファイルパスを表すパスのようなオブジェクト。パスのようなオブジェクトは、パスを表す文字列またはバイト オブジェクトです。 dir_fd (オプション): ディレクトリを参照するファイル記述子。このパラメータのデフォルト値は「なし」です。指定されたパスが絶対パスの場合、dir_fd は無視されます。

注記: パラメータ リストの「*」は、後続のすべてのパラメータ (ここでは「dir_fd」) がキーワード専用パラメータであり、位置パラメータとしてではなく名前を使用して提供できることを示します。

戻り値の型: このメソッドは値を返しません。

例 1: ディレクトリからすべてのディレクトリを削除する

ディレクトリが –

Geeks ディレクトリを削除したいと思います。以下は実装です。

Python3




# importing os module> import> os> # Directory name> directory>=> 'Geeks'> # Parent Directory> parent>=> 'D:/Pycharm projects/'> # Path> path>=> os.path.join(parent, directory)> # Remove the Directory> # 'Geeks'> os.rmdir(path)>

>

>

出力:

例 2: ディレクトリ削除時のエラー処理

os.rmdir() メソッド使用時のエラー処理、

Python3




# Python program to explain os.rmdir() method> # importing os module> import> os> # Directory name> directory>=> 'techcodeview.com'> # Parent Directory> parent>=> 'D:/Pycharm projects/'> # Path> path>=> os.path.join(parent, directory)> # Remove the Directory> # 'techcodeview.com'> try>:> >os.rmdir(path)> >print>(>'Directory '% s' has been removed successfully'> %> directory)> except> OSError as error:> >print>(error)> >print>(>'Directory '% s' can not be removed'> %> directory)> # if the specified path> # is not an empty directory> # then permission error will> # be raised> # similarly if specified path> # is invalid or is not a> # directory then corresponding> # OSError will be raised>

>

>

出力:

[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed>

注記: os.rmdir() について詳しくは、ここをクリックしてください。

shutil.rmtree() を使用してファイル/ディレクトリを削除する

shutil.rmtree() はディレクトリ ツリー全体を削除するために使用されます。パスはディレクトリを指している必要があります (ただし、ディレクトリへのシンボリック リンクは不可)。

shutil.rmtree() の構文

構文: shutil.rmtree(パス、ignore_errors=False、onerror=None)

パラメーター:

    path: ファイルパスを表すパスのようなオブジェクト。パスのようなオブジェクトは、パスを表す文字列またはバイト オブジェクトです。 ignore_errors:ignore_errors が true の場合、削除の失敗によるエラーは無視されます。 onerror:ignore_errors が false または省略された場合、そのようなエラーは onerror で指定されたハンドラーを呼び出すことによって処理されます。

ディレクトリとそこに含まれるファイルを削除します。

例 1:

ディレクトリとサブディレクトリが次のようになっているとします。

# 親ディレクトリ:

# 親ディレクトリ内のディレクトリ:

# サブディレクトリ内のファイル:

例: ディレクトリからすべてのファイルを削除する

Authors ディレクトリを削除したいと考えています。以下は実装です。

Python3


データ構造を試す



# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path)>

>

>

出力:

例 2: ディレクトリの削除中のエラーを無視する

ignore_errors = True を渡すことによって。

Python3




# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path, ignore_errors>=>False>)> # making ignore_errors = True will not raise> # a FileNotFoundError>

>

>

出力:

トレースバック (最新の呼び出しは最後): ファイル D:/Pycharm プロジェクト/gfg/gfg.py、shutil.rmtree の 16 行目(パス、ignore_errors=False) ファイル C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py、730 行目、rmtree return _rmtree_unsafe(path, onerror) ファイル C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py 、 589 行目、 _rmtree_unsafe onerror(os.scandir, path, sys.exc_info()) ファイル C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py の 586 行目、 _rmtree_unsafe で os.scandir(path) as scandir_it: FileNotFoundError: [WinError 3] システムは指定されたパスを見つけることができません: 'D:/Pycharm プロジェクト/techcodeview.com/Authors'

例 3: 例外ハンドラー

エラーの場合は、3 つのパラメータを含む関数を渡す必要があります。

    function – 例外を発生させた関数。 path – 削除中に例外を発生させた渡されたパス名 excinfo – sys.exc_info() によって発生した例外情報

以下は実装です

Python3




# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # exception handler> def> handler(func, path, exc_info):> >print>(>'Inside handler'>)> >print>(exc_info)> # location> location>=> 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path>=> os.path.join(location,>dir>)> # removing directory> shutil.rmtree(path, onerror>=>handler)>

>

>

出力:

ハンドラー内 (, FileNotFoundError(2, 'システムは指定されたパスを見つけることができません'), ) ハンドラー内 (, FileNotFoundError(2, 'システムは指定されたファイルを見つけることができません'), )

pathlib.Path(empty_dir_path).rmdir() を使用してファイル/ディレクトリを削除する

空のディレクトリは、pathlib モジュールの rmdir() メソッドを使用して削除または削除することもできます。まず、ディレクトリのパスを設定する必要があり、次にそのパスで rmdir() メソッドを呼び出します。

pathlib.Path の構文

構文: pathlib.Path(empty_dir_path).rmdir()

パラメータ:

    empty_dir_path: 空のディレクトリ パスを表すパスのようなオブジェクト。パスのようなオブジェクトは、パスを表す文字列またはバイト オブジェクトです。

戻り値の型: このメソッドは値を返しません。

例: rmdir() を使用して空のディレクトリを削除する

この例では、空のフォルダーを削除します。ルート ディレクトリにある場合はフォルダー名を指定するだけです。

Python3




import> pathlib> # Deleting an empty folder> # Put your file address> empty_dir>=> r>'Untitled Folder'> path>=> pathlib.Path(empty_dir).rmdir()> print>(>'Deleted '%s' successfully'> %> empty_dir)>

>

>

出力:

Deleted 'Untitled Folder' successfully>