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正则表达式知识汇总
Sep 22 Python
python迭代dict的key和value的方法
Jul 06 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python异步存储数据详解
Mar 19 Python
python flask安装和命令详解
Apr 02 Python
python的debug实用工具 pdb详解
Jul 12 Python
利用python在大量数据文件下删除某一行的例子
Aug 21 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
python判断链表是否有环的实例代码
Jan 31 Python
python 实现多维数组(array)排序
Feb 28 Python
python基础之模块的导入
Oct 24 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
Jquery下判断Id是否存在的代码
2011/01/06 Javascript
js的写法基础分析
2011/01/17 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
JSONP之我见
2015/03/24 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
jQuery自定义多选下拉框效果
2017/06/19 jQuery
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
[02:04]完美世界城市挑战赛秋季赛报名开始 谁是solo路人王?
2019/10/10 DOTA
Python实现多线程HTTP下载器示例
2017/02/11 Python
python类的继承实例详解
2017/03/30 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
优秀体育委员自荐书
2014/01/31 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
幼儿园老师寄语
2014/04/03 职场文书
爱护草坪标语
2014/06/24 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
导游词之太湖
2019/10/08 职场文书
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏