有时候想看一下项目中的目录和文件结构,用python实现

主要用到这几个函数

import os

os.getcwd()  #获取当前运行程序的目录

os.listdir(path) #取得path下的文件和目录,返回值List类型

os.path.isdir(path) #判断path路径是否为目录

os.path.isfile(path)#判断path路径是否为文件

os.path.splitext(path)#对path路径切片,第二个为文件拓展名,例如'.py'

代码如下

import os

#只打印以下文件拓展名

cType = ['.py','.html','.css','.js','.sql']

def show_file(path,deep):

#取得当前目录下的文件夹以及文件,返回值List类型

file_list = os.listdir(path)

#实现遍历目录

for dir in file_list:

if os.path.isdir(path+'/'+dir):

if deep == 0:

print dir+'/'

else:

print '| '*deep+'+-'+dir+'/'

#递归打印

show_file(path+'/'+dir,deep+1)

#实现遍历文件

for file in file_list:

if os.path.isfile(path+'/'+file):

#过滤文件

for type in cType:

#对路径切片获得文件拓展名

if os.path.splitext(path+'/'+file)[1] == type:

if deep == 0:

print file

else:

print '| '*deep+'+-'+file

break;

if __name__ == '__main__':

path = os.getcwd()

print path

show_file(path,0)

例如打印某一目录结构:

/web/mycode/python/learn_web

serving_xml/

| +-templates/

| +-code.py

| +-__init__.py

basic_blog/

| +-templates/

| | +-new.html

| | +-base.html

| | +-index.html

| | +-edit.html

| | +-view.html

| | +-login.html

| +-scheme.sql

| +-model.py

| +-blog.py

| +-__init__.py

todo_list/

| +-templates/

| | +-base.html

| | +-index.html

| | +-admin.html

| +-model.py

| +-schema.sql

| +-todo.py

| +-__init__.py

方法二:

# coding=utf-8

__author__ = 'nianyu'

from os.path import basename, isdir, exists

from os import listdir

from sys import argv

def show_tree(path,depth=0):

print depth* '| ' + '|_', basename(path)

if(isdir(path)):

for item in listdir(path):

show_tree(path+'/'+item, depth+1)

def isExist(path):

if path[0] is not '/':

return False

if not exists(path):

return False

return True

if __name__ == "__main__":

args = argv

if len(args)>2:

print "more than one argument."

exit(0)

path = str(args[1])

if not isExist(path):

print "the file path do not exist."

exit(0)

# show_tree("./")

show_tree(path)

python打印目录结构_Python学习笔记(2)——遍历目录结构并打印相关推荐

  1. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  2. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  3. python的基本数据结构_python学习笔记-基本数据结构

    Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...

  4. python创建实例属性_Python学习笔记__6.5章 实例属性和类属性

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 1.1.实例绑定属性 class Student(object): def __init__(self, name): self.name ...

  5. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  6. python的continue用法_Python学习笔记之Break和Continue用法分析

    本文实例讲述了Python学习笔记之Break和Continue用法.分享给大家供大家参考,具体如下: Python 中的Break 和 Continue break:控制何时循环应该结束 conti ...

  7. python中continue用法_Python学习笔记之Break和Continue用法分析

    本文实例讲述了Python学习笔记之Break和Continue用法.分享给大家供大家参考,具体如下: Python 中的Break 和 Continue break:控制何时循环应该结束 conti ...

  8. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

  9. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

最新文章

  1. jsp中空格字符怎么写_驰骋职场多年,如何对付Excel中的空格字符?
  2. mysql为int类型的字段php取出来之后为何变为string类型?
  3. 祝天下所有父亲节日快乐
  4. C二维数组行为空,列不为空
  5. Shell生成随机mac地址
  6. php soap 两个版本_Ceontos 安装php7以上的版本
  7. 折半查找和二叉排序树的时间性能_详解二叉排序树(基础篇)
  8. vim内过长字符串导致的语法加亮错误
  9. 【C++】 11_新型的类型转换
  10. Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg')
  11. grep正则表达式详解及练习
  12. 绿坝十年,儿童网络安全保护问题仍未解决
  13. Java 类加载器 详解
  14. 如何搭建一个论坛社区网站?
  15. win7搭建nas存储服务器_普通用户的低成本家庭文件服务器(伪NAS)的搭建(系统篇)...
  16. 2020年了,简单聊一聊木东居士的那些事~
  17. linux中gnuplot给定文本,Gnuplot (三)输出图片/字体支持、eps/png/pdf/enhanced文本
  18. 如何准备项目启动大会
  19. 使用 Zadig 交付云原生微服务应用
  20. Floyd-Warshall算法详解(转)

热门文章

  1. kali锁屏后无法唤醒_看一下吧,自己对线程以及锁的概念和原理了解是否正确...
  2. oracle表ddl,七、Oracle中DDL改变表结构操作
  3. gdb 调试kvm虚拟机_GDB+QEMU调试内核模块(实践篇)
  4. php开发实例大全pdf百度云盘_互联网大厂 主要使用哪些开发语言
  5. 模拟usb拔出插入_拔U盘的时候到底要不要点“安全删除USB”?微软官方给了答案...
  6. mysql 跨服务器 etl_mysql数据库跨服务器查询【需要确定mysql支持FEDERATED ,可以参照文章内容自己配置】...
  7. viewpager的优化
  8. 基于JAVA+SSH+MYSQL的在线考试系统
  9. sql-libs(6) 双引号的报错注入
  10. 把javabean复制到另一个javabean 使用BeanUtils.copyProperties(a,b) 复制