使用Glob()查找文件

大多Python函数有着长且具有描述性的名字。但是命名为glob()的函数你可能不知道它是干什么的除非你从别处已经熟悉它了。

 

它像是一个更强大版本的listdir()函数。它可以让你通过使用模式匹配来搜索文件。

 

import glob

 

# get all py files

files = glob.glob('*.py')

print files

 

# Output

# ['arg.py', 'g.py', 'shut.py', 'test.py']

 

你可以像下面这样查找多个文件类型:

 

import itertools as it, glob

 

def multiple_file_types(*patterns):

    return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns)

 

for filename in multiple_file_types("*.txt", "*.py"): # add as many filetype arguements

    print filename

 

# output

#=========#

# test.txt

# arg.py

# g.py

# shut.py

# test.py

 

如果你想得到每个文件的绝对路径,你可以在返回值上调用realpath()函数:

 

import itertools as it, glob, os

 

def multiple_file_types(*patterns):

    return it.chain.from_iterable(glob.glob(pattern) for pattern in patterns)

 

for filename in multiple_file_types("*.txt", "*.py"): # add as many filetype arguements

    realpath = os.path.realpath(filename)

    print realpath

 

# output

#=========#

# C:\xxx\pyfunc\test.txt

# C:\xxx\pyfunc\arg.py

# C:\xxx\pyfunc\g.py

# C:\xxx\pyfunc\shut.py

# C:\xxx\pyfunc\test.py

posted @ 2017-06-05 11:32  lp4083331  阅读(123)  评论(0)    收藏  举报