Supposons que le répertoire dans lequel se trouvent les fichiers, comme indiqué ci-dessous.
c:\pics\
a.png
b.jpg
subfolder\
c.png
d.jpg
J'ai créé une fonction comme celle-ci. "Exts" est une extension de fichier, mais je pense que cela fonctionnera même si vous spécifiez des conditions autres que l'extension.
from pathlib import Path
def file_search(file_path, exts, search_subfolder):
"""
# file_path:Annuaire à rechercher
# exts:Extension de fichier(Exemple:['*.jpg', '*.png']
"""
files = []
p = Path(file_path)
for ext in exts:
if search_subfolder:
files.extend(list(p.glob('**\\'+ext)))
else:
files.extend(list(p.glob(ext)))
return files
Je l'appellerai du principal comme ça.
def main():
file_path = r'C:\pics' + '\\'
exts = ['*.jpg', '*.png']
files = file_search(file_path, exts, True)
pprint(files)
py searchpic.py
[WindowsPath('C:/pics/b.jpg'),
WindowsPath('C:/pics/subfolder/d.jpg'),
WindowsPath('C:/pics/a.png'),
WindowsPath('C:/pics/subfolder/c.png')]
C'est pourquoi j'ai pu rechercher des fichiers avec plusieurs extensions sous le sous-dossier. Dans ce cas, le contenu des fichiers renvoyés est WindowsPath, pas une chaîne. Pour les fichiers, si les chaînes sont plus pratiques
files_str = list(map(lambda x: str(x), files))
Vous pouvez créer une liste de chaînes de caractères en la convertissant comme ceci.
Recommended Posts