Python提取Linux内核源代码的目录结构实现方法


Posted in Python onJune 24, 2016

今天用Python提取了Linux内核源代码的目录树结构,没有怎么写过脚本程序,我居然折腾了2个小时,先是如何枚举出给定目录下的所有文件和文件夹,os.walk可以实现列举,但是os.walk是只给出目录名和文件名,而没有绝对路径。使用os.path.listdir可以达到这个目的,然后是创建目录,由于当目录存在是会提示创建失败的错误,所以我先想删除所有目录,然后再创建,但是发现还是有问题,最好还是使用判断如果不存在才创建目录,存在时就不创建,贴下代码:

#  @This script can be used to iterate the given directory,and create the 

#  empty directory structure without file in it,e.g,I want to have you directory

#  as the linux kernel source, but i don't want the files, then this script comes.

#  @This script is running under python 3.1

#  @author:zhangchao

#  @Time:2011年7月25日18:43:26

###########################################################################

 

 

import os

import re

 

#listmydirs is created to recursivly list all the entrys in the specified path.

#In fact, we have os.walk to handle this problem

 

#

#level:目录的层数,不要也可以,主要是为了显示目录在那一层

#srcpath:内核源代码所在的路路径

#destpath:将要生成的内核源代码的目录结构所在路径

#

 

def createkerneldirs(level,srcpath,destpath):

  for entrys in os.listdir(srcpath): #学习listdir函数的用法

    tmpsrcpath=srcpath+os.sep+entrys

    tmpdestpath = tmpsrcpath.replace(srcpath,destpath)#将源路径中的E:\linux-2.6替换为E:\tmp,学习字符串替换函数的用法

  

    print('in level:'+str(level))

    print(tmpsrcpath)

    print(tmpdestpath)

     

    if os.path.isdir(tmpsrcpath):

      listmydirs(level+1,tmpsrcpath,tmpdestpath)

      if os.path.exists(tmpdestpath)==False: #如果文件不存在才创建文件

        os.makedirs(tmpdestpath)

 

if __name__=='__main__':

#将E:\linux-2.6的内核源代码目录结构拷贝到E:\tmp目录下

  createkerneldirs(1,r'E:\linux-2.6',r'E:\tmp')

以上就是小编为大家带来的Python提取Linux内核源代码的目录结构实现方法全部内容了,希望大家多多支持三水点靠木~

Python 相关文章推荐
python中Flask框架简单入门实例
Mar 21 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
说一说Python logging
Apr 15 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
Python SSL证书验证问题解决方案
Jan 13 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 #Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 #Python
Python基础篇之初识Python必看攻略
Jun 23 #Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 #Python
浅谈Python中用datetime包进行对时间的一些操作
Jun 23 #Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 #Python
python中的lambda表达式用法详解
Jun 22 #Python
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
php生成与读取excel文件
2016/10/14 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
动态控制Table的js代码
2007/03/07 Javascript
javascript instanceof 与typeof使用说明
2010/01/11 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
python从Oracle读取数据生成图表
2020/10/14 Python
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
自我评价范文点评
2013/12/04 职场文书
采购部主管岗位职责
2014/01/01 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
领导参观欢迎词
2015/01/26 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电