zoukankan      html  css  js  c++  java
  • List contents of directories in a tree-like format

      Python programming practice.

      Usage: List contents of directories in a tree-like format.

    #!/usr/bin/python
    #Author: lxw0109
    #Date: 20140719
    #Usage: List contents of directories in a tree-like format.
    
    import os
    import sys
    
    
    def tree(directory, count):
        if os.path.isdir(directory):
            print((count + 1) * "|   " + "|---" + os.path.basename(directory))
            # Get the file/directory list in 'dir'
            dirFormat = os.listdir(directory)
            dirFormat.sort()
    
            for dirItem in dirFormat:
    
                #absPath = os.path.abspath(dirItem)    
                #NO: On most platforms, this is equivalent to calling the function normpath() as follows:
                #normpath(join(os.getcwd(), path))
    
                absPath = directory + os.sep + dirItem
                tree(absPath, count + 1)
        else:
            print((count + 1) * "|   "+ "|---" + os.path.basename(directory))
    
    
    def main():
        #print(sys.argv)    #NOTE: sys.argv is a list.
        if len(sys.argv) != 2:
            print("Usage: tree DirectoryName")
            sys.exit(0)
    
        #directory = "/home/lxw/Documents/Programing"
        directory = sys.argv[1]
    
        #Get rid of the '/' at the end.
        if directory.endswith(os.sep):
            directory = directory[:-1]
    
        #turn Relative Path / Absolute Path into Absolute Path.
        if directory[0] != '/':
            #print("RELATIVE: " + directory[0])
            directory = os.getcwd() + os.sep + directory
            #print("direcotry: " + directory)
    
        #count = directory.count(os.sep)
        tree(directory, -1)
    
    if __name__ == "__main__":
        main()

    Demo Output:

    lxw@ubuntu:~/Documents/Programing/Python$ ls
    BasicPython.py Funcclass.py QS.py tree
    Django netTree.py tranverDict.py tree~
    lxw@ubuntu:~/Documents/Programing/Python$ ./tree .
    |---.
    |   |---BasicPython.py
    |   |---Django
    |   |   |---myFirstSite
    |   |   |   |---db.sqlite3
    |   |   |   |---manage.py
    |   |   |   |---myFirstSite
    |   |   |   |   |---__init__.py
    |   |   |   |   |---__init__.pyc
    |   |   |   |   |---settings.py
    |   |   |   |   |---settings.pyc
    |   |   |   |   |---urls.py
    |   |   |   |   |---urls.pyc
    |   |   |   |   |---wsgi.py
    |   |   |   |   |---wsgi.pyc
    |   |---Funcclass.py
    |   |---QS.py
    |   |---netTree.py
    |   |---tranverDict.py
    |   |---tree
    |   |---tree~
    lxw@ubuntu:~/Documents/Programing/Python$
  • 相关阅读:
    [BZOJ2882] 工艺
    团队项目成员和题目
    软件工程课堂作业(最小数组和)
    每周进度条(第六周)
    梦断代码阅读笔记01
    每周进度条(第五周)
    每周进度条(第四周)
    软件工程个人作业03
    软件工程个人作业02
    每周进度条(第三周)
  • 原文地址:https://www.cnblogs.com/lxw0109/p/tree-like-format.html
Copyright © 2011-2022 走看看