python遍历目录文件的方法

好记性不如烂笔头,python在我认为是替代shell的绝好语言。时常需要操作目录下的文件,方法多样,记录于此:

os.walk

import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print root, "consumes",
    print sum([getsize(join(root, name)) for name in files]),
    print "bytes in", len(files), "non-directory files"
    if 'CVS' in dirs:
        dirs.remove('CVS')  # don't visit CVS directories

不包括.和..以及.打头的隐藏文件。一直会递归到子目录下。返回是一个三元组:dirpath, dirnames, filenames,其中dirpath是路径,为字符串,dirnames是该路径下的所有目录名,为list,filenames为该路径下的所有文件名,为list。os.walk会递归子目录,直到dirnames为空,即[]。

os.listdir

root = '/home/lab'
for i in os.listdir(root):
    if os.path.isfile(os.path.join(root,i)):
        print i

结果不包括.和..以及.打头的隐藏文件。不会递归子目录。返回的只是文件名。

glob.glob

import glob
glob.glob('lab/*.py')

支持*和?两个通配符,返回的不只是文件名。默认*不匹配.打头的隐藏文件,如果使用.*就会匹配隐藏文件了。

发表于 2015年08月14日 14:12   评论:0   阅读:2518  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo