ホームページ  >  記事  >  ウェブフロントエンド  >  Python はツリー印刷ディレクトリを実装します。

Python はツリー印刷ディレクトリを実装します。

不言
不言オリジナル
2018-04-02 16:31:202070ブラウズ

この記事では主に Python ツリー印刷ディレクトリ構造の関連コードを詳しく紹介します。興味のある方は参考にしてください。

この記事の例では、Python ツリー印刷ディレクトリ構造を共有します。具体的な内容は以下の通りです

前書き

この2日間、データファイルを整理していたところ、階層ごとにフォルダーをクリックして見るのが面倒だったので、ファイルディレクトリを再帰的に出力するツールを書きたかったのですが、インターネットでいくつかの情報を見つけました。デバッグ後、返されるものは「」であることがわかりました。ジェネレーター"、for ループのみが必要ですが、得られるものは、BFS の構造が私が望むツリー構造ではないようです。最後に、関数 os.listdir を見つけましたが、それを使用して次のように書くことができます深さ優先検索は再帰的に呼び出される限り、私の問題は解決できます。 コード

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

__author__ = 'AlbertS'

import os
import os.path

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

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

  newitem = path +'/'+ item
  if os.path.isdir(newitem):
  dfs_showdir(newitem, depth +1)

if __name__ == '__main__':
 dfs_showdir('.', 0)

実行効果

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

概要

後で、フォルダーの1レベルしか再帰できないことがわかりました。それを見つけたここで問題は os.path .isdir 関数で発生しました。

  • os.path.isdir 関数に渡すパラメーターは、絶対パス、または作業ディレクトリを基準とした相対パスのみにすることができます。

  • 上記で発見された問題により、newitem 変数を結合するプロセスが生まれました。

  • 関連する推奨事項:

Pythonは2つのファイルのマージ関数を実装します

Pythonはジェネレータを使用して反復可能なオブジェクトを実装する方法を実装します

Pythonはインスタンス属性の型チェックを実装します

以上がPython はツリー印刷ディレクトリを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。