Il lèche tous les fichiers dans le répertoire spécifié et ne renvoie que le chemin du fichier avec l'extension souhaitée en tant que générateur. Vous pouvez le faire en utilisant ʻos.walk`.
Je pense que c'est une opération fréquemment utilisée, mais j'oublie immédiatement comment l'écrire, donc je vais en faire une fonction pour le futur sous forme de mémo. Il peut être utilisé avec Python 2 et 3.
import os
def walk_files_with(extension, directory='.'):
"""Generate paths of all files that has specific extension in a directory.
Arguments:
extension -- [str] File extension without dot to find out
directory -- [str] Path to target directory
Return:
filepath -- [str] Path to file found
"""
for root, dirnames, filenames in os.walk(directory):
for filename in filenames:
if filename.lower().endswith('.' + extension):
yield os.path.join(root, filename)
En fait, il est utilisé comme ça.
for filepath in walk_files_with('csv', './data/'):
print(filepath)
Si vous avez Python 3.4 ou supérieur, il peut être plus intelligent d'utiliser pathlib
.
Recommended Posts