1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
def choppeles( base, what=None, limit=None, ext=None):
if what:
what = what.replace('*', '')
if ext:
if not ext[0] == '.': raise ValueError( f"Mettez un point devant l'extension à chercher svp: {ext}" )
racine = base
niveau = -1
zeListe = []
def boucle( dossier, niveau, zeListe, ):
niveau += 1
#print( f"+++++++++++++++ new boucle: {dossier} / niveau: {niveau} ++++++++++++++")
# --- Limite de l'exploration
if limit and niveau > limit: return
with os.scandir( dossier ) as it:
for entry in it:
#print(entry.name, entry.path, sep='\t\t')
# Cas dossier
if entry.is_dir():
boucle( entry.path, niveau, zeListe, )
# Cas fichiers
if entry.is_file():
if ext: # --- cas d'une recherche d'extension
#print (entry.name, ext, extToTest, sep='\n')
extToTest = os.path.splitext(entry.name)[1]
if not extToTest == ext:
continue
relatP = entry.path.replace( base ,'./')
zeListe.append(( entry.path , relatP, entry.name ))
boucle( base, niveau, zeListe, )
return zeListe |
Partager