Help us understand the problem. What is going on with this article?

treeコマンドもどきをpythonで書いてみた

More than 1 year has passed since last update.

はじめに

WindowsのtreeコマンドみたいなものがLinux環境で使えれば良いなと思い調べてみたが、
どうやら標準コマンドではないらしい。

これでは手軽に tree をインストール出来ない環境だと使えない・・・と思ったので
pythonで実装してみることにした。

treeコマンドの実行例(DOSコマンドの場合)

N:.
├─Document
│  ├─Backup
│  └─Download Files
├─Pictures
├─Video
└─Work
    ├─2010
    |  └─Event
    ├─2011
    └─2012

ソースコード

walk関数を使ってカレントディレクトリ直下のディレクトリ・ファイルを取得。
ファイル構造が変わった時にdiffが取れるように
出力結果はtxtファイルに出力できるようにした。

tree.py
# -*- coding: utf-8 -*-

import os

#export file
exportfile = "filetree.txt"

#current directory
searchdir = "."

print ("Export Start!")
wk = os.walk(searchdir)
with open(exportfile,mode="w") as f:
    for dirpath, dirs, files in wk:
        path = dirpath.split("/") 
        f.write("\t"*(len(path)-2) + path[-1] + "\n")
        for x in files:
            f.write("\t"*(len(path)-1) + "|" + "-" + x + "\n")
print ("Export Finished!")

出力結果

出力先のディレクトリ構造を下記とする。
1〜10の名前のついたディレクトリの中に、
それぞれ"11.txt"と"12.txt"の2つのテキストファイルが入っている。

スクリーンショット 2017-09-16 18.49.35.png

出力結果はこちら
スクリーンショット 2017-09-16 19.01.12.png

全てのファイルを取得することには成功したが見た目がまだ微妙。
DOSのtreeコマンドみたいに見た目をもう少し改善したいところ・・・!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away