Python提取Linux内核源代码的目录结构实现方法
作者:jingxian 发布时间:2023-03-05 11:29:49
标签:linux,内核源代码,Python
今天用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')


猜你喜欢
- 这样就将你所有微信好友的信息都返回了,我们并不需要这么多的信息,我们选取一些信息存储到 csv 文件中注意:返回的信息是一个 list,其中
- 本文实例为大家分享了opencv转换颜色空间更改图片背景的具体代码,供大家参考,具体内容如下思路:1、将BGR转换为HSV颜色空间 2、设置
- 本文效果图:🌻正文注意:我们介绍一下本次开发使用的是uniapp,本次分享内容的搜索框为禁止输入搜索框,点击跳转专属搜索页面。🍉1、查阅官网
- javascript曾一度被认为是玩具型的语言,因为它太容易上手,而且,javascript曾一度担任为web站点“打杂”的职责。直到Aja
- MySQL扩展库操作MySQL数据库的步骤如下:1:获取连接.2:选取书库。3:设置操作编码。4:发送SQL指令(MySQL数据库可以分为四
- python3.6下载地址: https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tg
- fab命令好似结合我们编写的fabfile.py(其它文件名必须添加-f filename应用)来搭配使用的,部分命令行参数可以通过相应的方
- 最近被“模块化”缠身,又是文章又是PPT的,被逼着想了很多相关的东西。整理下我这段时间对于“模块化”的思考,大多都是我自己从事页面重构这份工
- 说明:关于类的这部分,我参考了《Learning Python》一书的讲解。创建类创建类的方法比较简单,如下:class Person:&n
- 本文实例讲述了Python运维自动化之nginx配置文件对比操作。分享给大家供大家参考,具体如下:文件差异对比diff.py#!/usr/b
- 首先得有一个Scrapy项目,我在Desktop上新建一个Scrapy的项目叫test,在Desktop目录打开命令行,键入命令:scrap
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 13 - Regular ExpressionsM
- 我们日常用CSS布局的时候,关于图片背景,大部分的人都是一个背景一张图片的,怎么说呢?这是很标准的方法,但是这种普通制作方式下要保存大量图片
- WebSocket - 开启通往新世界的大门WebSocket是什么?WebSocket是一种在单个TCP连接上进行全双工通讯的协议。Web
- 一、表命令1.查看所有表show tables;2.创建表CREATE TABLE table_name ( co
- 00 小编的问题小编向我们反馈,从微信里复制出来的图片,会被微信屏蔽,无法显示我们后天采用的是百度编辑器,而且已经做了远程图片本地化,于是检
- 神经网络在机器学习中有很大的应用,甚至涉及到方方面面。本文主要是简单介绍一下神经网络的基本理论概念和推算。同时也会介绍一下神经网络在数据分类
- 前言这是我在搭建Django项目时候的过程,拿来总结记录,以备不时之需。项目采用nginx+uwsgi的搭配方式。项目依赖包采用 requi
- 一、简介项目中用到了MySQL,参考网上的例子做了安装和基本使用,本文简单的介绍一下。二、环境准备操作系统:Win10三、教程1、下载安装包
- 常用Mysql查询语句记录一、授权1.授权本地用户对所有数据库具有所有权限> grant all privileges on