Hatena::ブログ(Diary)

enokitech RSSフィード

################################
 ブログを引っ越しました。-- Gray Sky, Blue Sea.
################################

2009-12-01

pythonでディレクトリのツリーマップ(樹形図)を作成。

pythonの練習に、cmdのtreeコマンド的な感じでフォルダの階層構成を表示するテストを書いてみたのです。

あまり美しくない感じになってしまった。

フローはこんな感じ↓

樹形図フロー

  • パスと階層を受け取る
  • パス内のファイル一覧をフルパスで取得
  • ファイルの場合
    • タブ * 階層 + ファイル名 を表示
  • ディレクトリの場合

コード↓

import glob
import os

def tree(path, layer):
    files = glob.glob(path + '\\*')
    for file in files:                      # get dir or file path
        file_paths = file.split('\\')       # get dir or file name
        print '\t' * layer + file_paths.pop()
        if os.path.isdir(file):             # case dir (recall)
            tree(file, layer + 1)

tree('C:\\Python26\\', 0)

treeの第一引数に、表示対象のルートdirを渡す。

トラックバック - http://d.hatena.ne.jp/enokitech/20091201/1259657213

はてなダイアリーの記事の更新機能、はてなダイアリープラスを停止しました