Nehmen Sie das Verzeichnis an, in dem sich die Dateien befinden (siehe unten).
c:\pics\
a.png
b.jpg
subfolder\
c.png
d.jpg
Ich habe eine Funktion wie diese gemacht. "Exts" ist eine Dateierweiterung, aber ich denke, es wird auch funktionieren, wenn Sie andere Bedingungen als die Erweiterung angeben.
from pathlib import Path
def file_search(file_path, exts, search_subfolder):
"""
# file_path:Verzeichnis zu suchen
# exts:Dateierweiterung(Beispiel:['*.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
Ich werde es von main so nennen.
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')]
Deshalb konnte ich im Unterordner nach Dateien mit mehreren Erweiterungen suchen. In diesem Fall ist der Inhalt der zurückgegebenen Dateien WindowsPath und keine Zeichenfolge. Für Dateien, wenn Zeichenfolgen bequemer sind
files_str = list(map(lambda x: str(x), files))
Sie können eine Liste von Zeichenfolgen erstellen, indem Sie sie wie folgt konvertieren.