视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python提取Linux内核源代码的目录结构实现方法
2020-11-27 14:29:12 责编:小采
文档


今天用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:	mp,学习字符串替换函数的用法

 

 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:	mp目录下

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

下载本文
显示全文
专题