程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Python和PHP如何使用遞歸建立多層目錄函數

Python和PHP如何使用遞歸建立多層目錄函數

編輯: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);
     
        }
     
    }
     
}

看到了嗎?這兩種語言的遞歸建立多層目錄函數是如此的相似

查看本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved