用Python获取子目录或文件列表

2020-06-11  本文已影响0人  大器待成

在Python编程中,如果需要对文件进行操作的话,有时会需要搜索指定目录下的特定类型的文件。获取子目录或文件列表用得较多的是os.walkerglob。大器推荐你用glob,从下面的示例代码可以显而易见地看出glob完成相同的功能代码更简洁易读。

glob

如果需要递归列出目录下的子目录或子目录下的文件需要使用**通配符,并且设置参数recursiveTrue,这样**通配符才可以匹配零到多个子目录。注意此特性要求Python的版本在3.5及以上。

列出指定目录下的所有.doc文件

from glob import glob

files = [f for f in glob('I:/work/*.doc')]
for f in files:
    print(f)

列出指定目录和子目录下的所有.doc文件

from glob import glob

files = [f for f in glob('I:/work/**/*.doc', recursive=True)]
for f in files:
    print(f)

列出指定目录和子目录下的所有目录

from glob import glob

dirs = [d for d in glob('I:/work/**/', recursive=True)]
for d in dirs:
    print(d)

os.walker

os.walker无法只列出指定目录下的所有.doc文件,因此未给出示例代码。

列出指定目录和子目录下的所有.doc文件

import os

files = []
# r=root d=dirs f=files
for r, d, f in os.walk('I:/work/'):
    for name in f:
        if name.endswith('.doc'):
            files.append(os.path.join(r, name))
for f in files:
    print(f)

列出指定目录和子目录下的所有目录

import os

dirs = []
# r=root d=dirs f=files
for r, d, f in os.walk('I:/work/'):
    for name in d:
        dirs.append(os.path.join(r, name))
for d in dirs:
    print(d)
glob.png
上一篇下一篇

猜你喜欢

热点阅读