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实现的数据结构与算法之快速排序详解
Apr 22 Python
Python向日志输出中添加上下文信息
May 24 Python
python书籍信息爬虫实例
Mar 19 Python
transform python环境快速配置方法
Sep 27 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
pandas 按日期范围筛选数据的实现
Feb 20 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 变量定义和变量替换的方法
2009/07/30 PHP
PHP中文件上传的一个问题
2010/09/04 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
python 排序算法总结及实例详解
2016/09/28 Python
Python解惑之True和False详解
2017/04/24 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
linux下进程间通信的方式
2013/01/23 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
寄语学生的话
2014/04/10 职场文书
白血病捐款倡议书
2014/05/14 职场文书
三八妇女节标语
2014/10/09 职场文书
小学生暑假生活总结
2015/07/13 职场文书
装修安全责任协议书
2016/03/22 职场文书
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python