【Python】Windowsの指定したフォルダ内にあるフォルダをフルパスで取得しよう

Pythonのlistdir,os.path.join等の検証 Python

PythonでWindowsの指定したフォルダ内にあるフォルダのみをフルパスで取得するにはどうすればいいか検証してみました。(指定したフォルダにあるファイルは除外します。)

検証に使用したPythonのバージョンは「Python 3.8.3」です。
今回使用する関数は以下です。

関数説明
os.listdir()指定したフォルダパスに存在するファイル名、フォルダ名を取得する
os.path.join()複数のパスを結合する
os.path.isdir()フォルダだったらTrueを返す

検証1:指定したフォルダ内のファイル、フォルダをフルパスで取得

ファイルを除外しないで指定したフォルダ内のファイルとフォルダをフルパスで取得してみます。

import os

def directory_list(search_path):
    for name in os.listdir(search_path):
        path = os.path.join(search_path, name)
        print(path)

if __name__ == '__main__':
    directory_list(r'\\192.168.3.10\c$\Program Files\Mozilla Firefox')

os.path.join()で指定したフォルダパスと(画像だと「\\192.168.3.10\c$\Program Files\Mozilla Firefox」)os.listdir()で取得したファイル名、フォルダ名を結合させてフルパスを取得することができました。

検証2:ファイルは除外してフォルダのみフルパスで取得する

指定したフォルダから配下のファイル、フォルダのフルパスを取得できたので次にファイルは除外してフォルダのみフルパスで取得します。

import os

def folderpath_list(search_path):
    for name in os.listdir(search_path):
        path = os.path.join(search_path, name)
        if os.path.isdir(path) == True:
            print(path)

if __name__ == '__main__':
    folderpath_list(r'\\192.168.3.10\c$\Program Files\Mozilla Firefox')  

検証1から追加されたのは青文字となっている「if os.path.isdir(path) == True:」だけです。
os.path.isdir()を使用してフォルダなのかファイルなのかを判定し、Trueだった場合、出力させます。

最後に:フォルダパスの指定はinput()を使って、EXE化して作業を簡略化

EXEにすればPythonがインストールされていない端末でも使えるのでinput()で調査したいフォルダパスを指定することにしました。(ついでに出力結果をテキストファイルに出力させます)

EXEを実行して、、、

調査対象とするフォルダパスと結果を出力するテキストファイルパスを指定します。

出力されたテキストファイルを見ると、、、

フォルダのみフルパスで取得できていることを確認。

コメント

タイトルとURLをコピーしました