この記事では主に 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 はツリー印刷ディレクトリを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。