Pythonのディレクトリ操作:作成, 移動, 削除

Pythonでディレクトリを操作する方法として、ディレクトリの作成、カレントディレクトリの移動、ディレクトリの削除について説明します。

Pythonでファイルやディレクトリを操作するにはosモジュールやshutilモジュールを使います。

ディレクトリの作成

カレントディレクトリに新しくディレクトリを作成するには、os.mkdir()を使います。

os.mkdir('ディレクトリのパス名')

以下のプログラムはカレントディレクトリにdirAディレクトリを作成する例です。

import os

os.mkdir('./dirA')

引数のパス名は相対パスと絶対パスが指定できます。ここでは相対パスで指定しています。

また、os.makedirs()を使うと再帰的にディレクトリを作成することができます。次のサンプルプログラムでは、カレントディレクトリの直下にdirA/dirB/dirCというツリー構造を作成しています。dirAやdirBが存在しない場合は、自動的に作成されます。

import os

os.makedirs('./dirA/dirB/dirC')

上のプログラムを実行すると以下のようなディレクトリ構造になります。

dirRoot/
└ dirA
  └ dirB
   └ dirC

ディレクトリの移動(カレントディレクトリの変更)

カレントディレクトリを変更し、他のディレクトリに移動するには、os.chdir()を使います。

os.chdir('移動先ディレクトリのパス名')

以下のプログラムはカレントディレクトリからdirAディレクトリにあるdirBディレクトリに移動する例です。

import os

os.chdir('./dirA/dirB')

移動後はdirBがカレントディレクトリになります。

ディレクトリの削除

ディレクトリを削除するにはos.rmdir()を使います。

os.rmdir('削除するディレクトリのパス名')

以下は引数に絶対パスを指定し、先ほど作成したdirCを削除する例です。

import os

os.rmdir('./dirA/dirB/dirC')

ただし、ディレクトリ内にファイルが存在するディレクトリを削除しようとするとエラーになってしまいます。

再帰的なディレクトリの削除

再帰的にディレクトリを削除するためには、shutilモジュールを使います。

shutil.rmtree('再帰的に削除するディレクトリのパス名')

dirRoot/dirA/dirB/dirCというディレクトリ構造があり、dirRootがカレントディレクトリであるとすると、カレントディレクトリ以下の全ディレクトリを削除するプログラムは以下のようになります。

import os
import shutil

shutil.rmtree('/dirRoot/dirA')

イベント

2017/12/05(火)
Design Thinking Square