当前位置: 移动技术网 > IT编程>脚本编程>Python > python生成目录树,不想在python中调用shell

python生成目录树,不想在python中调用shell

2017年12月27日  | 移动技术网IT编程  | 我要评论

余额宝转入时间,新概念2,陈海基

不想在python中调用shell,需要实现一个类似linux tree命令的功能
[root@python_test OcApi]# tree
.
|-- OCenter
|   |-- Lib
|   |   |-- Mysql.php
|   |   `-- Think.php
|   |-- Model
|   |   |-- Base.php
|   |   `-- User.php
|   `-- OCenter.php
`-- oc.php

代码示例如下
#coding:utf-8

import os

def list_files(startpath):
    for root, dirs, files in os.walk(startpath):
        level = root.replace(startpath, '').count(os.sep)
        if not level:
            continue
        dir_indent = "|   " * (level-1) + "|-- "
        file_indent = "|   " * level + "|-- "
        print('{}{}'.format(dir_indent, os.path.basename(root)))
        for f in files:
            print('{}{}'.format(file_indent, f))

list_files('/root/OcApi')

输出结果

[root@python_test xx]# /usr/local/python-3.6.2/bin/python3 xxxx
|-- OCenter
|   |-- OCenter.php
|   |-- Lib
|   |   |-- Think.php
|   |   |-- Mysql.php
|   |-- Model
|   |   |-- User.php
|   |   |-- Base.php

os.walk() 方法为我们遍历目录树,每次进入一个目录,它会返回一个三元组,包含相对于查找目录的相对路径,一个该目录下的目录名列表,以及那个目录下面的文件名列表。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网