Maison développement back-end Tutoriel Python Python3. Exemple de parcours d'un dossier pour extraire des noms de fichiers spécifiques

Python3. Exemple de parcours d'un dossier pour extraire des noms de fichiers spécifiques

Apr 27, 2018 am 10:49 AM
文件夹 特定

Ce qui suit est un exemple de parcours d'un dossier pour extraire un nom de fichier spécifique dans Python 3. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde. Jetons un coup d'oeil ensemble

Lors du traitement de fichiers par lots, il est souvent nécessaire de parcourir un certain chemin pour extraire les noms de fichiers dans des conditions spécifiques. Cet article écrit une méthode de traversée violente mais très concise. C'est vraiment très concis mais très violent.

L'exemple d'objectif est : Obtenir le contenu du dossier dont le nom se termine par "_BAD" sous le dossier où les données de télédétection sont stockées. Comme il existe de nombreux niveaux sous ce fichier (année/mois/type de produit/), il existe de nombreux dossiers cibles et ils existent au dernier niveau, il est donc très ennuyeux de vérifier manuellement.

Le code est le suivant (après avoir résumé les points de connaissances) :

# -*- coding: utf-8 -*-
"""
遍历某路径下所有文件夹,获得特定文件夹下所有文件
很暴力,真的遍历了所有的文件夹
20180124
@author: 墨大宝
"""
import os
TARGETPATH = r'F:\MODIS_DATA'
records = []
for currentDir, _, includedFiles in os.walk(TARGETPATH):
 if not currentDir.endswith('_BAD'): continue
 else:
  records.append(currentDir) # 将以“_BAD”结尾的文件夹名加入records
  records.extend(includedFiles) # 将该文件夹内的文件名列表扩展到records
# 将records写入.txt
txtFile = open(os.path.join(TARGETPATH, '02_04_BAD.txt'), 'w')
txtFile.write(os.linesep.join(records))
txtFile.close()
# 将排序后的records写入.txt
with open(os.path.join(TARGETPATH, '02_04_BAD_SORTED.txt'), 'w') as txtFile:
 txtFile.write('\n'.join(sorted(records)))
Copier après la connexion

os .walk() renvoie le générateur d'arborescence de répertoires. Chaque fois qu'un tuple au format (dirpath, dirnames, filenames) est généré, les éléments sont le chemin actuel, la liste des dossiers sous le chemin actuel et la liste des noms de fichiers sous le chemin actuel.

Les méthodes .append(), .extend() et .sort() de list sont modifiées sur place, mais la fonction sorted() ne l'est pas.

Lors de l'écriture d'une liste dans un fichier .txt, vous devez convertir la liste en str. Utiliser directement la fonction str() pour forcer la conversion sera moche. Utiliser des nouvelles lignes pour connecter chaque élément de la liste sera moche. avoir l'air beaucoup mieux.

os.path représente le caractère de nouvelle ligne du système, qui est "rn" sous Windows et "n" dans d'autres systèmes. Cependant, que vous utilisiez os.path ou "n" pour connecter les éléments de la liste et que vous l'ouvriez enfin avec le Bloc-notes Windows, les sauts de ligne seront toujours les mêmes. Cependant, si vous l'ouvrez avec vs code, os.path changera. une ligne de plus, ce qui donne l'impression qu'il y a une ligne entre les lignes. Quelle est la raison derrière cela ? En parlant de cela, cela peut être lié au mécanisme d'écriture de Python, donc je ne m'y plongerai pas pour le moment (en partant). un trou).

Concernant la lecture et l'écriture de fichiers, la plupart des informations recommandent le formulaire with, qui est en effet plus concis.

PS :

Je dis que os.walk() est violent car il parcourt vraiment tous les fichiers du chemin donné en fonction de l'arborescence des répertoires Dossiers et fichiers, ce sera plus lent si la taille du fichier est grande et que les noms de fichiers que vous recherchez sont peu nombreux (en fait, je ne pense pas que ce soit beaucoup plus lent si vous utilisez os.listdir() pour écrire un). fonction récursive, l'efficacité d'exécution est peut-être plus élevée, mais os.walk () La logique est simple et facile à écrire, n'hésitez pas à faire ce que vous voulez, je l'ai fait !

Recommandations associées :

instance Python de suppression de dossiers non vides

python copie les fichiers dans le répertoire spécifié

Comment Python obtient le chemin du fichier d'exécution du programme

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment afficher la taille du dossier sur Windows 11 ? Comment afficher la taille du dossier sur Windows 11 ? Sep 23, 2023 pm 06:13 PM

Comment afficher la taille du dossier sur Windows 11 ?

Où est stockée l'image d'arrière-plan Win11 ? Où est stockée l'image d'arrière-plan Win11 ? Dec 27, 2023 am 11:59 AM

Où est stockée l'image d'arrière-plan Win11 ?

Comment copier automatiquement les fichiers dans un autre dossier sous Windows 11/10 Comment copier automatiquement les fichiers dans un autre dossier sous Windows 11/10 Feb 19, 2024 am 11:24 AM

Comment copier automatiquement les fichiers dans un autre dossier sous Windows 11/10

Comment détailler l'emplacement du dossier du thème win10 Comment détailler l'emplacement du dossier du thème win10 Dec 27, 2023 pm 09:37 PM

Comment détailler l'emplacement du dossier du thème win10

Comment définir le mot de passe pour le dossier de l'ordinateur Win11 Comment définir le mot de passe pour le dossier de l'ordinateur Win11 Jan 12, 2024 pm 02:27 PM

Comment définir le mot de passe pour le dossier de l'ordinateur Win11

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Mar 18, 2024 am 09:46 AM

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook

Recherchez le chemin du dossier par défaut et partagez les détails des fonds d'écran Win11 Recherchez le chemin du dossier par défaut et partagez les détails des fonds d'écran Win11 Jan 30, 2024 pm 03:15 PM

Recherchez le chemin du dossier par défaut et partagez les détails des fonds d'écran Win11

Comment définir la protection par mot de passe pour le dossier Win10 Comment définir la protection par mot de passe pour le dossier Win10 Feb 29, 2024 am 09:00 AM

Comment définir la protection par mot de passe pour le dossier Win10

See all articles