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用法参考: 点击打开链接

有什么改进的希望告诉我哈!

你可能感兴趣的:(Python学习)