【python】ディレクトリの作成と削除の方法

投稿者: | 2022年3月17日

pythonでディレクトリの作成と削除の概要

summary of directory creation and deletion

この記事では、ディレクトリ(フォルダ)の作成と削除を行う方法と、ディレクトリが存在するかどうかの確認を行うpythonプログラムの方法を説明します。

ディレクトリの作成と削除には色々な方法がありますが、ここでは、下記の3つのディレクトリ作成と削除の方法を解説します。

1.osライブラリを使った方法
2.shutilライブラリを使う方法
3.linuxコマンドを使う方法

 

pythonでディレクトリの作成と削除の前提の環境

environment of directory creation and deletion

pythonのディレクトリの作成と削除と確認の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

レンタルサーバなどのlinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

オススメ
how to check version in python
【python】バージョン確認の方法【→プログラミング初心者向け】

続きを見る

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

オススメ
how to programming on rental server
【Linux】レンタルサーバーでプログラミングする方法【→ブログのサーバーでできる!】

続きを見る

pythonのディレクトリの作成と削除のサンプルプログラム

sample program of directory creation and deletion

ここでは、ディレクトリ作成と削除する3つの方法のサンプルプログラムとその実行結果を説明します。

  1. ディレクトリ作成・削除の方法(osライブラリを使う方法)
  2. ディレクトリ作成・削除の方法(shutilライブラリを使う方法)
  3. ディレクトリ作成・削除の方法(Linuxコマンドを使う方法)

1.ディレクトリ作成・削除の方法(osライブラリを使う方法)

初めのサンプルプログラムでは、pythonの「osライブラリ」を使って、ディレクトリの作成と削除を行います。

ディレクトリ作成と削除のサンプルプログラム作成(osライブラリを使う方法)

osライブラリのインポート

ディレクトリの作成と削除をする為の osライブラリのインポートを行います。

import os

 

「os」ライブラリを「import」コマンドでインポートする

 

ディレクトリ作成と削除の処理(osライブラリを使う方法)

サンプルプログラムでは、現在(カレント)のディレクトリに、test_dirという名前のディレクトリを作成し、その後削除するというプログラムを考えます。

ディレクトリを作成する為には、関数 os.mkdirを呼び出します。また、ディレクトリを削除する為には、関数 os.rmdirを呼び出します。

それぞれの結果を確認する為に、ディレクトリを作成した直後とディレクトリを削除した直後に、os.path.existsを呼び出しています。

if __name__ == '__main__':

new_dir = '.\test_dir'

os.mkdir(new_dir)
print(os.path.exists(new_dir))

os.rmdir(new_dir)
print(os.path.exists(new_dir))

 

  1. 変数「new_dir」に新規ディレクトリ「test_dir」定義します。
  2. osライブラリの「mkdir」関数でディレクトリを作成します。
  3. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認
  4. osライブラリの「rmdir」関数でディレクトリを削除
  5. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認

 

ディレクトリ作成と削除の処理結果(osライブラリを使う方法)

上のプログラムを実行した結果は、下のようになります。

$ python test.py
True
False

os.mkdirによるディレクトリを作成する後では、ディレクトリが存在するTrueが「os.path.exists」関数から返却され、ディレクトリが存在していることが分かります。

その後、os.rmdirによって、削除されている為、Falseが「os.path.exists」関数から返却され、ディレクトリが正常に削除されていることが分かります。

2.ディレクトリ作成・削除の方法(shutilライブラリを使う方法)

前のプログラムのosライブラリを使う方法では、ディレクトリ内にファイルが存在していた場合には、ディレクトリを削除することができませんでした。今回はこれに対応する為に、削除したいディレクトリ内にファイルが残っていても、強制的に削除する方法を説明します。

ディレクトリ作成と削除のサンプルプログラム作成(shutilライブラリを使う方法)

shutilライブラリのインポート

まずは、中のファイルを含めて、ディレクトリを削除するライブラリshutilをインポートします。

import os
import shutil

 

  1. 「os」ライブラリを「import」コマンドでインポートする
  2. 「shutil」ライブラリを「import」コマンドでインポートする

 

ディレクトリ作成と削除の処理(shutilライブラリ使う方法)

ディレクトリの作成に関しては、先ほどと同様に、関数os.mkdirを使いますが、ディレクトリの削除は、shutilというライブラリの rmtree関数を使います。

今回も、ディレクトリの存在を確認する為にos.path.existsを作成と削除の直後に呼び出します。

if __name__ == '__main__':

new_dir = '.\test_dir'

os.mkdir(new_dir)
print(os.path.exists(new_dir))

shutil.rmtree(new_dir)
print(os.path.exists(new_dir))

 

  1. 変数「new_dir」に新規ディレクトリ「test_dir」定義します。
  2. osライブラリの「mkdir」関数でディレクトリを作成します。
  3. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認
  4. shutilライブラリの「rmtree」関数でディレクトリを削除
  5. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認

 

ディレクトリ作成と削除の処理結果(shutilライブラリを使う方法)

上のプログラムを実行した結果は、下のようになります。

$ python test.py
True
False

先ほどと同様に、ディレクトリを作成した後の 「shutil.rmtree」による削除でも「os.path.exists」からFalseが返却されていることから、ディレクトリが正常に削除されていることが分かります。

3.ディレクトリ作成・削除の方法(Linuxコマンドを使う方法)

最後の方法は、「Linuxコマンド」を用いて、ディレクトリの作成や削除を行う方法を紹介します。これは「LinuxOS本来のコマンドをpythonから使う」という趣旨の処理になり、恒久的にディレクトリの作成と削除を行うことができます。

ただし、「pythonを動かしているOSがLinuxである場合にのみこの方法を使うことができる」といった制限事項もあります。

ディレクトリ作成と削除のサンプルプログラム作成(Linuxコマンドを使う方法)

commandsライブラリのインポート

Linuxコマンドを使う為に、commandsライブラリをインポートします。

import os
import commands

 

  1. 「os」ライブラリを「import」コマンドでインポートする
  2. 「commands」ライブラリを「import」コマンドでインポートする

 

ディレクトリ作成と削除の処理(Linuxコマンド使う方法)

pythonでLinuxコマンドを実行する為には、「commands」ライブラリの「getoutput」関数を使います。

Linuxのディレクトリの作成のコマンドは「mkdir」である為、Linuxコマンドを実行する関数「commands」ライブラリの「getoutput」関数の初めの引数は「rmdir .\test_dir」になります。

また、Linuxのディレクトリの削除のコマンド「rm -rf」である為、2番目の「commands」ライブラリの「getoutput」関数の引数は、「rm -rf .\test_dir」になります。

こららをそれぞれ実行し、ディレクトリの存在を確認する為にos.path.existsを作成と削除の直後に呼び出します。

if __name__ == '__main__':

new_dir = '.\test_dir'

commands.getoutput('mkdir '+new_dir)
print(os.path.exists(new_dir))

commands.getoutput('rm -rf '+new_dir)
print(os.path.exists(new_dir))

 

  1. 変数「new_dir」に新規ディレクトリ「test_dir」定義します。
  2. commandsライブラリの「getoutput」関数で、Linuxコマンド「mkdir」を使いディレクトリを作成します。
  3. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認します。
  4. commandsライブラリの「getoutput」関数で、Linuxコマンド「rm -rf」を使いディレクトリを削除します。
  5. osライブラリの「path.exists」関数によって新規作成したディレクトリの存在を確認します。

 

pythonで使えるLinuxのコマンドは、ディレクトリの生成と削除だけではありません。その他のLinuxコマンドもpythonから実行することができます。その他のLinuxコマンドをpythonから使う方法については、下記の記事で詳しく解説していますので、pythonからのLinuxコマンドの実行方法について知りたい方は下記の記事を読んで下さい。

オススメ
how to perform linux command on python
【python】Linuxのコマンドを実行する【→プログラミング初心者向け】

続きを見る

また、本記事で使用したディレクトリの作成や削除を実施する「mkdir」や「rm」などのLinuxコマンド自体について知りたい場合は、下の記事で説明していますので、合わせて読んでください。

オススメ
how to operate file on linux
【Linux】ファイル操作とディレクトリ構成【→初心者向け】

続きを見る

ディレクトリ作成と削除の処理結果(Linuxコマンドを使う方法)

上のプログラムの実行結果は下のようになります。

$ python test.py
True
False

Linuxコマンドを使った削除を使った例でも、上の2つの実行結果と同様に、ディレクトリの作成と削除は正常に行われていることが分かります。

コメントを残す

メールアドレスが公開されることはありません。