os.walkとは
os.walkとは、Pythonでフォルダ内のファイルを再帰的に検索するための関数です。os.walkを使うことで、フォルダ内の全てのファイルを一度に取得することができます。
os.walkの基本的な使い方
os.walkを使うためには、以下のようにコードを記述します。
import os
for root, dirs, files in os.walk('/path/to/folder'):
for file in files:
print(os.path.join(root, file))
上記のコードでは、指定したフォルダ内の全てのファイルを取得しています。
特定の階層を除外する方法
os.walkで特定の階層を除外するには、以下のようにコードを記述します。
import os
for root, dirs, files in os.walk('/path/to/folder'):
if 'exclude_folder' in dirs:
dirs.remove('exclude_folder')
for file in files:
print(os.path.join(root, file))
上記のコードでは、exclude_folderというフォルダを除外してファイルを取得しています。dirs.remove(‘exclude_folder’)で、dirs内からexclude_folderを除外しています。
階層の除外のためのコード解説
os.walkで特定の階層を除外するためのコードを解説します。
import os
for root, dirs, files in os.walk('/path/to/folder'):
if 'exclude_folder' in dirs:
dirs.remove('exclude_folder')
for file in files:
print(os.path.join(root, file))
os.walkの引数には、検索するフォルダのパスを指定します。forループでフォルダ内の全てのファイルを取得します。
dirs.remove(‘exclude_folder’)で、exclude_folderというフォルダを除外しています。dirsは、os.walkで取得したフォルダのリストです。remove()関数で、リストからexclude_folderを除外しています。
階層の除外のための注意点
os.walkで階層を除外する場合、注意点があります。
- dirs.remove()は、forループ内で使用する必要があります。
- dirs.remove()は、dirsリスト自体を変更するため、forループ内でdirsの要素を変更する場合は注意が必要です。
os.walkを使った便利な応用例
os.walkを使った便利な応用例を紹介します。
ファイルのパス一覧をCSVファイルに出力する
以下のコードを実行すると、指定したフォルダ内の全てのファイルのパス一覧をCSVファイルに出力します。
import os
import csv
with open('filelist.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['path'])
for root, dirs, files in os.walk('/path/to/folder'):
for file in files:
writer.writerow([os.path.join(root, file)])
特定の拡張子のファイルのみを取得する
以下のコードを実行すると、指定したフォルダ内の特定の拡張子のファイルのみを取得します。
import os
for root, dirs, files in os.walk('/path/to/folder'):
for file in files:
if file.endswith('.txt'):
print(os.path.join(root, file))
まとめ
Pythonでos.walkを使って特定の階層を除外する方法を詳解しました。os.walkを使うことで、フォルダ内の全てのファイルを取得することができます。また、特定の階層を除外することで、必要なファイルだけを取得することができます。応用例として、ファイルのパス一覧をCSVファイルに出力したり、特定の拡張子のファイルのみを取得する方法を紹介しました。

![[Python]CSVデータをリアルタイムでグラフ(散布図、折れ線)表示](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-294.jpg)



![[Python]requestsでtimeoutの原因を徹底解説](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-319.jpg)