在用到寫緩存時,常常會遇到建立多個多層目錄的操作,這種操作我們手工去操作太繁瑣了,今天我們就來看一下使用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); } } }
看到了嗎?這兩種語言的遞歸建立多層目錄函數是如此的相似
查看本欄目