python实现树形打印目录结构
本文实例为大家分享了python树形打印目录结构的具体代码,供大家参考,具体内容如下
前言
这两天整理数据文件的时候发现,一层层的点击文件夹查看很繁琐,于是想写一个工具来递归打印出文件目录的树形结构,网上找了一些资料几乎都是使用的os.walk,调试了以后发现返回的貌似的是一个“生成器”,只需要for循环即可,可是这样得到的好像是BFS的结构,并不是我想要的树形结构,最后终于发现了os.listdir这个函数,可是使用它来写一个深度优先搜索,只要递归调用就能解决我的问题。
代码
#!/usr/bin/envpython3 #-*-coding:utf-8-*- #atestfortraversedirectory __author__='AlbertS' importos importos.path defdfs_showdir(path,depth): ifdepth==0: print("root:["+path+"]") foriteminos.listdir(path): if'.git'notinitem: print("|"*depth+"+--"+item) newitem=path+'/'+item ifos.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
总结
- 一开始写的时候发现只能递归一层文件夹,后来发现问题出现在os.path.isdir函数这里。
- 传给os.path.isdir函数函数的参数只能是一个绝对路径,或者相对于工作目录的相对路径。
- 有了上面发现的问题,才有了newitem变量拼接的过程。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。