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 全局变量的import机制介绍
Sep 07 Python
python生成圆形图片的方法
Mar 25 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
pandas中的DataFrame按指定顺序输出所有列的方法
Apr 10 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
Python自动登录QQ的实现示例
Aug 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
PHP图片加水印实现方法
2016/05/06 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
js常用代码段收集
2011/10/28 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
工会主席岗位责任制
2014/02/11 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
导游词范文
2015/02/13 职场文书
学术会议通知
2015/04/15 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
2015年女工委工作总结
2015/07/27 职场文书
Nginx配置根据url参数重定向
2022/04/11 Servers