Trouver les répertoires vides en Python
Tous,
Quelle est la meilleure façon de vérifier pour voir si il y a des données dans un répertoire avant de les supprimer? Je suis la navigation à travers les pages d'un couple pour trouver des photos à l'aide de wget et bien sûr, chaque page ne dispose pas d'une image sur elle, mais le répertoire est créé quand même.
dir = 'Files\\%s' % (directory)
os.mkdir(dir)
cmd = 'wget -r -l1 -nd -np -A.jpg,.png,.gif -P %s %s' %(dir, i[1])
os.system(cmd)
if not os.path.isdir(dir):
os.rmdir(dir)
J'aimerais bien tester pour voir si un fichier a été supprimé dans le répertoire après qu'il a été créé. Si il n'y a rien...le supprimer.
Grâce,
Adam
- Définir le "vide". Que faire si il y a des sous-répertoires? Devraient-ils être vérifiés pour les données? Ils devraient également être supprimé que s'il n'y a pas de données chez eux?
- Je n'ai pas de sous-répertoires dans ce cas, un seul dossier qui peut ou peut ne pas avoir des images.
- S'il vous plaît ne pas utiliser os.système d'appel wget. Utiliser des sous-processus.Popen
Vous devez vous connecter pour publier un commentaire.
LBYL style.
pour L'aeap, voir mouad réponse.
Je vais aller avec L'aeap comme suit:
os.rmdir pas à supprimer un répertoire non vide.
EACCESS
), que vous souhaitez signaler. Notez que la fixation de la naïveté serait probablement entraîner des erreurs de déclaration, pour les non-répertoires vides, que vous souhaitez probablement ignorer. Pas si simple que ça en a l'air 🙂else: raise
?NameError: name 'errno' is not defined
vous avez besoinimport errno
!Essayer:
ou
Cela peut maintenant être fait plus efficacement en Python3.5+, car il n'est pas nécessaire de construire une liste du contenu du répertoire, juste pour voir si son vide:
Que faire si vous avez vérifié si le répertoire existe, et si il est contenu dans le répertoire... quelque chose comme:
Si les répertoires vides sont déjà créés, vous pouvez placer ce script dans votre extérieur répertoire et exécutez-le:
Ici est la manière la plus rapide et optimisé de manière à vérifier si le répertoire est vide ou non.
os.scandir
est rapide, avec l'avantage d'être plus clair et ne pas avoir besoin de générer des listes qui ne sont pas utiliser.