Pythonでファイルやフォルダを削除・作成したり、移動・コピー・実行したりする方法を紹介しています。
今回紹介する方法はosモジュールとshutilモジュールを使います。Pythonをインストールすれば使えるので改めてインストールする必要はありません。
この内容を理解するにあたり、ルートディレクトリ、カレントディレクトリ、相対パス、絶対パスのを知っておく必要があります。
今回は「ルートディレクトリ・カレントディレクトリ・ファイルパス」の説明をします。 もし、「ディレクトリ」という言葉が分からない場合は下の記事をご覧ください。 [sitecard subtitle=関連記事 url="https[…]
パソコンを使ったことがあるのなら一度は聞いたことがあるとは追うこれらの言葉「ファイル・フォルダ・ディレクトリ」の違いを説明していきたいと思います。 本棚に本がたくさん入っているようにフォルダ(ディレクトリ)の中にファイルが入っている[…]
osモジュール
フォルダ作成(os.makedirs)
- osモジュールをインポート
- 引数にフォルダパスを渡す
1 2 3 4 5 6 7 8 9 10 |
C: #blogフォルダの中身 │ sample.txt │ スケジュール.xlsx │ │─ folder1 │ ├─ step1.txt │ ├─ step2.txt │ └─ step3.txt │ └ folder2 |
この「blogフォルダ」の中に「flolder3」を作ります。以下のプログラムを実行しても何も表示されませんが、ちゃんと新規フォルダが作られています。
1 2 |
>>> import os >>> os.makedirs(r"C:\blog\folder3") |
もちろんこの関数でファイルを作ることはできません。以下のようにファイルパスを指定してもフォルダ名と認識されます。
1 2 3 4 |
>>> import os >>> os.makedirs(r"C:\blog\sample2.txt") #「sample2.txt」フォルダが作られる |
テキストファイルの作成方法はopen関数を使います。以下の記事にopen関数の使い方をまとめています。
ファイル削除(os.remove)
- osモジュールをインポート
- 引数はファイルパスを渡す
- フォルダは削除できない
- フォルダのパスを渡すと「PermissionError」
「blogフォルダ」内の「sample.txt」を削除します。この関数で削除できるのはファイルだけです。フォルダの削除は「shutil.rmtree」を使います。
1 2 3 4 5 6 7 |
>>> import os >>> os.remove(r"C:\blog\sample1.txt") #フォルダパスはエラー >>> os.remove(r"C:\blog\folder2") PermissionError: [WinError 5] アクセスが拒否されました。 |
空のフォルダを削除(os.rmdir)
- osモジュールをインポート
- 引数はフォルダルパスを渡す
- 空のフォルダのみ削除できる
- 空でないフォルダパスを渡すと「OSError」
「blogフォルダ」内の「folder2」を削除します。このファイルは空なので削除できますが、「folder1」は空でないので削除できません
1 2 3 4 5 6 7 |
>>> impot os >>> os.rmdir(r"C:\blog\folder2") #空でないとエラー >>> os.rmdir(r"C:\blog\folder1") OSError: [WinError 145] ディレクトリが空ではありません。 |
shutilモジュール
フォルダ削除(shutil.rmtree)
- shutilモジュールをインポート
- 引数に削除したいフォルダパスを渡す
- フォルダの中身ごと消す
1 2 3 4 5 6 7 8 9 10 |
C: #blogフォルダの中身 │ sample.txt │ スケジュール.xlsx │ │─ folder1 │ ├─ step1.txt │ ├─ step2.txt │ └─ step3.txt │ └ folder2 |
「blogフォルダ」内の「folder1」を削除します。このフォルダの中には3つのファイルがありますがそれごと削除されます。
1 2 |
>>> import shutil >>> shutil.rmtree(r"C:\blog\folder1") |
削除後のフォルダの中身は以下のようになります。
1 2 3 4 5 |
C: #削除後の中身 │ sample.txt │ スケジュール.xlsx │ └ folder2 |
まとめ
- フォルダの作成:os.makedir関数
- 空フォルダの削除:os.rmdir関数
- フォルダの中身ごと削除:shutil.rmtree関数
- フォルダとディレクトリは同じ意味です。
- ファイル操作で使うosモジュールの関数16個まとめ
- ファイルを読み込む手順【open・close・path・withの使い方】
- ファイルに書き込み・上書き・読み込みする5つの方法【open関数のモード選択】
- フォルダ内のファイル名を取得・名前を変更する方法
- ファイル・フォルダを削除・作成する方法
- 絶対パスと相対パスの判定・変換する方法
- ファイル・フォルダを移動・コピーする方法【shutilモジュールの使い方】
- ファイルを読み込む5通りの方法【リスト・for文・一行ずつ】
- ディレクトリツリーを取得してファイル一覧を表示する方法【os.walkの使い方】
- ファイル・フォルダがあるかどうかの存在確認と判定する方法
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]