python 遍歷文件夾得到子一級文件夾列表

自己還是個小白,纔剛開始進公司學習。近來接觸到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用法參考:點擊打開鏈接

有什麼改進的希望告訴我哈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章