Python フォルダー内のサブフォルダー・ファイルを取得する

スポンサーリンク

Pythonの「walk」でフォルダー内のサブフォルダー・ファイルすることができます。

例えば、Cドライブ直下のフォルダーとファイルをすべて取得することができます。

今回は、Pythonでフォルダー内のサブフォルダー・ファイルする「walk」の使い方を解説します。

フォルダー内のサブフォルダー・ファイルを取得する walk

walk構文

import os
os.walk(取得したいフォルダのパス)
#戻り値:フォルダパス、フォルダ内のサブフォルダー名リスト、フォルダ内のファイル名リスト

まず最初にpython標準のosモジュールを使用するため「import os」を事前に記述します。

「os.walk」で任意のフォルダの中身を取得します。

「戻り値」は「フォルダパス」と「フォルダ内のサブフォルダ名」と「フォルダ内のファイル名」がリストで取得されます。

例1. フォルダ内のサブフォルダーをすべて取得する

import os
for fd_path, sb_folder, sb_file in os.walk('c:\\pg'):
    for fol in sb_folder:
        print(fd_path + '\\' + fol)

#[結果] 'c:\pg\python'
#[結果] 'c:\pg\java'
#[結果] 'c:\pg\python\test'

Pythonの「os.walk」で「c:\pg」内のフォルダ・ファイルを取得しました。

「c:\pg」の中身を「for in」を使って3つの変数に入れてフォルダーを取得し、さらに「for in」でフォルダを1つずつ取得しました。

「os.walk」では、サブフォルダーの中のサブフォルダーも含めてすべて取得します。

パスの記述ですが、「\」をエスケープする必要があるため、「\」であれば「\\」と書きます。よって「c:\pg」の場合は「c:\\pg」と書きます。

例2.フォルダ内のファイルをすべて取得する

import os
for fd_path, sb_folder, sb_file in os.walk('c:\\pg'):
    for fil in sb_file:
        print(fd_path + '\\' + fil)

#[結果] 'c:\pg\file1.txt'
#[結果] 'c:\pg\file2.txt'
#[結果] 'c:\pg\python\python.txt' 
#[結果] 'c:\pg\java\java.txt'
#[結果] 'c:\pg\python\test\test1.txt'

ここではフォルダ「c:\pg」内のすべてのファイルを取得しました。

「os.walk」は「c:\pg」直下にあるファイルだけでなく、配下にあるすべてのファイルを取得しました。サブフォルダーの中のファイルも含めてすべて取得します。

 

これで「os.walk」で指定したフォルダー内のサブフォルダー・ファイルをすべて取得するすることができました。

以上、Pythonの「walk」でフォルダー内のサブフォルダー・ファイルを取得する方法でした。

コメント