Python和PHP如何使用递归建立多层目录函数

在用到写缓存时,常常会遇到建立多个多层目录的操作,这种操作我们手工去操作太繁琐了,今天我们就来看一下使用python递归建立多层目录的方法:

首先上代码:

#! /usr/bin/env python
#coding=utf-8

import os

def mkFolder(path):

    if not os.access(path,os.R_OK):

        #print 1212
        #print os.path.dirname(path)

        path_last = len(path)-1
        if path[path_last] == '/' or path[path_last] == '\\':
            path = path[0:path_last]

        mkFolder(os.path.dirname(path))

        if not os.path.isfile(path):
            os.mkdir(path,0755)

mkFolder('./google/baidu/yahoo/sougou/')

当然我们也可以使用mkdirs()函数(注意:PHP里面可没有这个函数哦)。多谢一楼的提醒~~

但是通过这两个函数,我们对于python和php函数的相似度~~

以上就是使用递归建立多层目录的方法,下面解释一下:

第八行:是检测目录是否可读,也就是检测目录是否存在

第13-15行:这个地方要特别注意,因为如果不去掉path最后的“/”,会造成死循环,具体原因是:os.path.dirname(path)到最后会变成" ",继而使循环一直继续下去,造成死循环

最后检测是否是文件,如果不是,就建立目录

以上是Python的方式,下面再看一下PHP是怎么做的(看完之后你会发现python和php这两个方法惊人的相似)

上代码:

function mkFolder($path){

    if(!is_readable($path)){

        mkFolder( dirname($path) );

        if(!is_file($path)){

            mkdir($path,0777);

        }

    }

}

看到了吗?这两种语言的递归建立多层目录函数是如此的相似

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索目录
, 递归
, 函数
, path
, 死循环
, 递归python
, 递归python数据结构
, php判断python
, 建立虚拟目录
, mkdir递归创建
, 目录建立
, path.dirname方法
, 多层
dirname
python 递归遍历目录、python 递归创建目录、python 递归删除目录、python 目录递归、python 创建多层目录,以便于您获取更多的相关知识。

时间: 2024-08-31 02:15:48

Python和PHP如何使用递归建立多层目录函数的相关文章

算法-求高数解答二叉树的递归建立问题

问题描述 求高数解答二叉树的递归建立问题 从书上看了一个递归建立二叉树的算法(利用前序遍历建立二叉树).代码如下(这个递归的结束条件是输入一个分号";")但是我不明白的是这个分号是从程序的哪里被读入从而结束递归的. 希望高手解答 #include #include typedef char Type; typedef struct BinTNode{ Type data; struct BinTNode lchild; struct BinTNode *rchild; }BinTNod

链表 递归-递归建立链表为什么会报错?

问题描述 递归建立链表为什么会报错? #include #include struct node { int num; struct node*next; }; void creatlist(struct node*p); void printlist(struct node*p); int main() { struct node*p; creatlist(p); printlist(p); return 0; } void creatlist(struct node*p) { p=(stru

C++非递归建立二叉树实例_C 语言

本文实例讲述了C++非递归建立二叉树的方法.分享给大家供大家参考.具体分析如下: 思路: 设置一个标记变量flag并初始化为1. flag = 1表示现在需要创建当前结点的左孩子,2表示需要创建右孩子,3则表示当前结点的左右孩子都已经创建完毕,需要执行出栈操作,直到当前结点不是父结点的右孩子为止. 以先序创建如图所示二杈树: 实现代码: PBTree create() { char ch[20]; scanf("%s",ch); int len = strlen(ch); PBTree

PHP递归遍历指定目录的文件并统计文件数量的方法_php技巧

本文实例讲述了PHP递归遍历指定目录的文件并统计文件数量的方法.分享给大家供大家参考.具体实现方法如下: <?php //递归函数实现遍历指定文件下的目录与文件数量 function total($dirname,&$dirnum,&$filenum){ $dir=opendir($dirname); echo readdir($dir)."<br>"; //读取当前目录文件 echo readdir($dir)."<br>&qu

Python实现动态添加类的属性或成员函数的解决方法_python

某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法.用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块. 本文就此简述了Python实现动态添加类的属性或成员函数的解决方法,具体方法如下: 首先我们可以参考ulipad的实现:mixin. 这里做的比较简单,只是声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数动态加载为类的成员函数. 代码如下所示: class WinBAS(Bas): def

php通过递归方式复制目录和子目录的方法_php技巧

本文实例讲述了php通过递归方式复制目录和子目录的方法.分享给大家供大家参考.具体实现方法如下: <?php function recurse_copy($src,$dst){ $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $fil

php通过递归方式复制目录和子目录的方法

 这篇文章主要介绍了php通过递归方式复制目录和子目录的方法,涉及php递归及目录操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php通过递归方式复制目录和子目录的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <?php function recurse_copy($src,$dst){ $dir = opendir($src); @mkdir($dst); while(fa

虚拟机如何与主机建立共享目录

建立共享目录   1.虚拟机->设置->选项->共享文件夹,添加所需要共享的文件; 2.虚拟机->安装VMware Tools,进入/mnt/cdrom 目录,解压2个文件中的任一个目录; 3.进入解压后的 vmware-tools-distrib 目录,在shell中执行 ./vmware-install.pl  并一路回车即可,中间可选择显示器的分辨率; 4.进入 /mnt/hgfs  即可看见共享的目录. 本文出自 "驿落黄昏" 博客,请务必保留此出处ht

Python常用的文件及文件路径、目录操作方法汇总介绍

  这篇文章主要介绍了Python常用的文件及文件路径.目录操作方法汇总介绍,本文集合了最常用的一些文件和目录操作函数,并一一介绍它们的作用,需要的朋友可以参考下 python的文件和路径操作函数基本上位于os和os.path模块中. os.listdir(dirname):列出dirname下的目录和文件 os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返