【Python】OS、shutilモジュールでファイルを操作するプログラム

    目次

    ファイルをコピー/削除/移動する

    ここでは Python を使って、 ファイルをコピー/削除/移動する方法を説明します。
    pandasを利用した新規保存で 「Excelファイルを移動」できますが、もっと直接的にファイルをコピー/削除/移動する方法もあります。
    Pythonのos、shutil、 pathlib などのモジュールに、 ファイル操作関連のさまざまな関数/メソッドが用意されています。

    YouTubeでより深く学んでいただけけます。

    これらを使えば、ファイルの種類を問わずに操作することが可能です。 今回はosとshutilを中心にファイルの操作方法を説明します。
    ファイル操作のサンプルを用意したので、試してみてください。

    サンプルファイルのダウンロード

    file_operation.py
    import os
    import shutil
    # ディレクトリの作成
    os.makedirs("移動先", exist_ok=True)
    os.makedirs("コピー先", exist_ok=True)
    # ファイルのコピー
    shutil.copy2("コピー.xlsx", "コピー先")
    # ファイルの移動
    if not os.path.exists("移動先/移動.xlsx"):
    shutil.move("移動.xlsx", "移動先")
    # ファイルの削除
    os.remove("削除.xlsx")

    実行過程

    1、いくつかのファイルがある

    2、プログラムを実行

    3 、移動.xlsxと削除.xlsxl が消え、フォルダが2つ作成された

    4、「コピー先」 フォルダ内にコピー.xlsxがコピーされている

    5、「移動先」 フォルダ内に移動.xlsxが移動している

    プログラムの解説

    osモジュールは、osの機能を呼び出すモジュールで、 ファイル操作やosのユーザー関連の情報取得などを行えます。 今回はosモジュールのmakedirs関数を呼び出して、2つのフォルダを作成しています。

    同名のフォルダがすでにある場合はエラーが発生しますが、 引数 exist_ok に True を指定すると、エラーを回避できます。

    hachi
    同名のフォルダの中にファイルがあったら、上書きして消えたりしないんでしょうか?
    haruki
    大丈夫、 ファイルが消えたりはしませんよ。 その場合はフォルダを作成せずに既存のものを使うだけです。

    ファイルを移動/コピーする方法はいくつかあり、 ここではshutilモジュールの copy2 関数と move 関数を利用しています。

    どちらも第1引数に移動/コピー対象のファイルを、 第2引数に移動/コピー先を指定します。 次のように第2引数にファイル名まで書くと、移動/コピー時にファイル名を変えることもできます。

    shutil.copy2(“コピー.xlsx”,”コピー先/コピー2.xlsx”)
    shutil.move(“移動先”, “移動先/移動2.xlsx”)

    最後に osモジュールの remove 関数でファイルを削除しています。引数は削除したいファイルです。

    shutil.move 関数は、 移動先に同名のファイルが存在しているとエラーになるのですが、 exists 関数を組み合わせて使えば、エラーを避けられます。

    os.path.exists 関数で移動先のファイルをチェックし、 存在している場合はTrue を返すので、 not演算子で反転すれば、 「存在しないときのみ移動」 させることができます。

    移動先をチェックしてからファイルを移動
    if not os.path.exists(“移動先/移動.xlsx”):shutil.move(“移動.xlsx”, “移動先”)
    shutil.move(“移動先”, “コピー先”)

    よかったらシェアしてね!
    • URLをコピーしました!
    目次