Python

Pythonでカレントディレクトリやファイルの作成、削除、確認の仕方

By 2021年6月20日No Comments

この記事では、Pythonでカレントディレクトリの作成や削除、確認の仕方について解説していきます。

カレントディレクトリとは現在の作業ディレクトリの呼び方になります。Pythonでディレクトリを扱うには、まずはosモジュールをインポートします。

import os

Pythonでディレクトリを作成する方法

Pythonのosモジュールにあるmkdir( )関数を使うとディレクトリを作成することができます。ディレクトリを作成するには、mkdir( )関数の引数に絶対パスか相対パスで作成するディレクトリ名を指定します。構文は下記になります。

os.mkdir(パス名)

今回、パスでしている「.」は現在のフォルダの場所を表しています。

import os

path = './sample'
os.mkdir(path)

mkdir( )関数の引数に指定した現在いるディレクトリの中にsample1というディレクトリが作成されました。mkdir( )関数を使う場合は作成するディレクトリの直上までのディレクトリが存在している必要があります。

forループを使うことで複数のディレクトリを作成する事もできます。

path_list = ['./sample1', './sample2', './sample3']
for path in path_list:
    os.mkdir(path)

リストで複数のフォルダ名を作成してforループで処理しています。

makedirs( )関数を使用すると中間のディレクトリが存在しない場合には、その中間ディレクトリごと作成することができます。

path = './sample/new/sample'
os.makedirs(path)

このようにmakedirs( )関数を使用すれば深い階層のディレクトリを一気に作成することができます。

パスの最後に指定したディレクトリが存在する場合はエラーとなりますが、makedirs( )関数の第2引数にexist_okを指定することでエラーを発生しなくする事ができます。

path = './sample'
os.makedirs(path, exist_ok=True)

「sample」フォルダは先ほど作成した、すでにあるフォルダですが第2引数にexist_okを指定することによりエラーを回避できました。このようにエラーを出したくない処理をしたい場合はmakedirs( )関数の第2引数にexist_okを指定します。

Pythonでフォルダやファイルの存在をチェックして確認する方法  

Pythonでフォルダやファイルの存在を確認する事ができます。osモジュールのpathを使います。構文は下記になります。

os.path

os.pathにあるexists( )関数を使ってフォルダやファイルの存在を確認していきます。

path1 = './sample'
path2 = './sample5'
print(os.path.exists(path1))
print(os.path.exists(path2))

結果:

True
False

先程、作成した「sample」のフォルダは存在するのでTrueを返し、存在しない「sample5」はFalseを返しているのが確認できます。

カレントディレクトリにフォルダのみの存在を確認をするにはpath.isdir( )関数を使って確認することができます。

path1 = 'sample'
print(os.path.isdir(path1))

結果:

True

カレントディレクトリにあるファイルだけの存在を確認するにはisfile( )関数を使用します。このままではファイルがないので、まずはmkdir( )関数で先ほど作成したsampleフォルダの中に「sample.txt」のファイルを作成しました。

os.mkdir('./sample/sample.txt')

そして、isfile( )関数でファイルがあるか判定します。

path1 = 'sample.txt'
path2 = 'sample2.txt'
print(os.path.isfile(path1))
print(os.path.exists(path2))

結果:

True
False

作成した「sample.txt」はTrueを返し作成していない「sample2.txt」はFalseを返しているのが確認できます。

Pythonでディレクトリを削除する方法

rmdir( )関数を使うとディレクトリを削除することができます。構文は下記になります。

os.rmdir(パス)

rmdir( )関数の引数に指定したディレクトリを削除することができますが、削除するにはディレクトリの中身が空である必要があります。

import os
path = './sample1'
os.rmdir(path)

先ほど作成した「sample1」のフォルダを削除する事ができました。

forループで先ほど作成したすべての空のフォルダをまとめて削除する事ができます。

path_list = ['./sample2', './sample3', './sample4']
for path_lists in path_list:
    os.rmdir(path_lists)

ただし、「sample」のフォルダの中に「sample.txt」を作成したのでこちらを削除しようとするとエラーがでてしまいます。

path = 'sample'
print(os.rmdir(path))

結果:

OSError: [Errno 66] Directory not empty: 'sample'

ディレクトリ内に存在するファイルもまとめて削除するにはshutilモジュールにあるrmtree( )関数を使うことができます。shutilモジュールをインポートします。

import shutil

rmtree( )関数の構文は下記になります。

shutil.rmtree(パス)

import shutil

path = 'sample'
shutil.rmtree(path)

このように引数に指定したディレクトリとファイルもまとめて削除する事ができました。

Pythonで自分のいる現在のディレクトリを確認する方法

Pythonで現在のディレクトリのパスを取得するには、getcwd( )関数を使う事ができます。

import os
current = os.getcwd()
print(current)

結果としてはコマンド操作で「ls」を指定したように現在の自分のいるディレクトリを表示します。

結果:

/Users/user_name/project/

このように、現在のディレクトリを確認する事ができました。

まとめ

この記事では、Pythonでカレントディレクトリの作成や削除、確認方法について解説しました。このようにPythonでフォルダやファイルを扱うには様々な方法があります。以上、Pythonでカレントディレクトリを扱う方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL