Maison > interface Web > js tutoriel > le corps du texte

Python implémente le répertoire d'impression d'arborescence structure_python

不言
Libérer: 2018-04-02 16:31:20
original
2125 Les gens l'ont consulté

Cet article présente principalement en détail le code pertinent de la structure du répertoire d'impression de l'arborescence Python, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

L'exemple de cet article partage Python avec tout le monde. pour la structure du répertoire d'impression arborescente est pour votre référence. Le contenu spécifique est le suivant

Avant-propos

Lorsque je triais les fichiers de données au cours des deux derniers jours, j'ai J'ai découvert qu'il y avait de nombreux clics les uns après les autres. La visualisation des dossiers est très fastidieuse, j'ai donc voulu écrire un outil pour imprimer de manière récursive l'arborescence du répertoire de fichiers. J'ai trouvé des informations sur Internet et j'ai presque toutes utilisé <.>os.walk, et je l'ai débogué plus tard, j'ai découvert que ce qui était renvoyé semblait être un "générateur", qui ne nécessitait qu'une boucle for. Cependant, la structure obtenue de cette manière semblait l'être. une structure BFS, pas la structure arborescente que je voulais. Finalement, j'ai trouvé os.listdir est cette fonction, mais je peux l'utiliser pour écrire une recherche en profondeur d'abord. cela s'appelle récursivement, mon problème peut être résolu.

Code

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#a test for traverse directory

__author__ = &#39;AlbertS&#39;

import os
import os.path

def dfs_showdir(path, depth):
 if depth == 0:
 print("root:[" + path + "]")

 for item in os.listdir(path):
 if &#39;.git&#39; not in item:
  print("| " * depth + "+--" + item)

  newitem = path +&#39;/&#39;+ item
  if os.path.isdir(newitem):
  dfs_showdir(newitem, depth +1)

if __name__ == &#39;__main__&#39;:
 dfs_showdir(&#39;.&#39;, 0)
Copier après la connexion

Effet de course

root:[.]
+--1111.segmentfault.com
| +--01decode.py
| +--01string.txt
| +--1111.segmentfault.com.tar.gz
+--urllib_test.py
+--use_module.py
+--water_deal
| +--water_pouring2.py
+--web
| +--module_test.py
| +--__init__.py
| +--__pycache__
| | +--module_test.cpython-34.pyc
| | +--__init__.cpython-34.pyc
+--web_crawler
| +--bg_teaser.svg
| +--crawler_images
| | +--10393478-1.jpg
| | +--13802226-1.jpg
| | +--169b1b76356f636.jpg
| | +--1a774de56fb4bf2.jpg
| | +--small_event_dft.jpg
| | +--ypy_qr.jpg
| +--crawler_image_test.py
| +--crawler_test.py
| +--crawler_website
| | +--crawler_article_set
| | | +--aiohttp.html
| | | +--asyncio.html
| | | +--async_await.html
| | | +--base64.html
Copier après la connexion

Résumé

  • Quand je l'ai écrit pour la première fois, j'ai découvert que je ne pouvais récurer qu'un seul niveau de dossiers. Plus tard, j'ai découvert que c'était le problème. s'est produit dans la fonction os.path.isdir ici.

  • Le paramètre passé à la fonction os.path.isdir ne peut être qu'un chemin absolu, ou un chemin relatif par rapport au répertoire de travail.

  • Avec les problèmes découverts ci-dessus, le processus d'épissage de variables newitem est né.

Recommandations associées :


Python implémente la fonction de fusion de deux fichiers

Python implémente la génération La méthode d'implémentation d'un objet itérable

Python implémente la vérification de type des attributs d'instance

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!