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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
跟老齐学Python之集合(set)
Sep 24 Python
用Python的SimPy库简化复杂的编程模型的介绍
Apr 13 Python
Python中的urllib模块使用详解
Jul 07 Python
python版微信跳一跳游戏辅助
Jan 11 Python
Python常用的json标准库
Feb 19 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
python仿evething的文件搜索器实例代码
May 13 Python
Django对models里的objects的使用详解
Aug 17 Python
python3实现弹弹球小游戏
Nov 25 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
解决redis与Python交互取出来的是bytes类型的问题
Jul 16 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设计模式 Mediator (中介者模式)
2011/06/26 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
基于jquery的表格排序
2010/09/11 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
JavaScript ES5标准中新增的Array方法
2016/06/28 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
python不换行之end=与逗号的意思及用途
2017/11/21 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python 读取数据库并绘图的实例
2019/12/03 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
内业资料员岗位职责
2014/01/04 职场文书
如何写早恋检讨书
2014/09/10 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
小学生暑假生活总结
2015/07/13 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers