自己還是個小白,纔剛開始進公司學習。近來接觸到Python,因所開發的模塊有這個需求,便經過蒐集知識,學習下。
廢話不多說。首先要實現這個,具體思路是:
1.給定父文件夾路徑,找出該文件夾中所有的內容(文件夾或文件)。
2.篩選出內容中的文件夾。
總的來說,實現還是挺簡單的,Python的os包也提供了許多方法。具體看代碼
# -*- coding: UTF-8 -*-
import os.path
#定義一個函數,path爲你的路徑
def traversalDir_FirstDir(path):
#定義一個列表,用來存儲結果
list = []
#判斷路徑是否存在
if (os.path.exists(path)):
#獲取該目錄下的所有文件或文件夾目錄
files = os.listdir(path)
for file in files:
#得到該文件下所有目錄的路徑
m = os.path.join(path,file)
#判斷該路徑下是否是文件夾
if (os.path.isdir(m)):
h = os.path.split(m)
print h[1]
list.append(h[1])
print list
traversalDir_FirstDir("E:\\xlrd-1.0.0")
輸出結果爲:
build
dist
scripts
tests
xlrd
xlrd.egg-info
['build', 'dist', 'scripts', 'tests', 'xlrd', 'xlrd.egg-info']
Python有一個方法是os.path.isdir(pyth),即判斷該路徑下的文件下是否是文件夾,其傳入的參數的參數是路徑,我在想,Python要是提供一個方法,返回該文件下的所有文件路徑就好,但貌似我沒有找到。所以用了os.listdir(pyth),得到了路徑下的所有內容名,然後又用了join()方法把其轉化成路徑~,額,有些麻煩了。其中split()會把路徑截成一個二元組(路徑,文件名)
其實有個方法,os.walk()方法可以得到該文件夾下所有文件夾和文件,但我只要求得到子一級文件夾哈。具體可參考旁邊鏈接:點擊打開鏈接。
下面再附上Python的 os的一些屬性方法:os模塊方法
因之前我學過一些Java,所以感覺Python語法跟Java差不多,不過比Java更加簡練
額,發現一個函數,glob()方法可以直接得到一個文件夾下所有的路徑。上面的代碼可以改進如下:
# -*- coding: UTF-8 -*-
import glob
import os.path
def traversalDir_FirstDir(path):
list = []
if (os.path.exists(path)):
#獲取該目錄下的所有文件或文件夾目錄路徑
files = glob.glob(path + '\\*' )
print files
for file in files:
#判斷該路徑下是否是文件夾
if (os.path.isdir(file)):
#分成路徑和文件的二元元組
h = os.path.split(file)
print h[1]
list.append(h[1])
print list
traversalDir_FirstDir("E:\\xlrd-1.0.0")
glob用法參考:點擊打開鏈接
有什麼改進的希望告訴我哈!