Je veux construire un programme qui utilise du code de base pour lire un dossier et me dire combien de fichiers sont dans le dossier. Voici comment je le fais actuellement:python os.walk à un certain niveau
import os
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
Cela fonctionne très bien jusqu'à ce qu'il ya plusieurs dossiers dans le dossier « principal » car il peut retourner une longue liste junky des fichiers en raison du mauvais dossier/gestion de fichiers. Je voudrais donc aller au deuxième niveau tout au plus. exemple:
Main Folder
---file_i_want
---file_i_want
---Sub_Folder
------file_i_want <--*
------file_i want <--*
------Sub_Folder_2
---------file_i_dont_want
---------file_i_dont_want
Je sais comment aller seul le premier niveau avec un break
et del dirs[:]
pris de this post et also this post.
import os
import pandas as pd
folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
for root, dirs, files in os.walk(stuff, topdown=True):
print("there are", len(files), "files in", root)
del dirs[:] # or a break here. does the same thing.
Mais peu importe ma recherche je ne peux pas savoir comment aller deux couches de profondeur. Je ne suis peut-être pas en train de comprendre les autres articles sur le sujet ou quelque chose? Je pensais quelque chose comme del dirs[:2]
mais en vain. Quelqu'un peut-il me guider ou m'expliquer comment accomplir cela?
'dirs' correspond à tous les répertoires du répertoire courant, ce n'est pas la profondeur de l'arborescence des dossiers. –
@PeterWood, ah! ça a du sens. Alors maintenant, je comprends pourquoi 'del dirs [: 2]' est idiot ... – MattR
On dirait que vous utilisez Python 3. Est-ce correct? –