Python3遍历目录树实现方法

时间:2021-08-07 10:14:03

本文实例讲述了Python3遍历目录树的方法。分享给大家供大家参考。具体实现方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import os, fnmatch
# 检查一个目录,后者某个包含子目录的目录树,并根据某种模式迭代所有文件
# patterns如:*.html,若大小写敏感可写*.[Hh][Tt][Mm][Ll]
# single_level 为True表示只检查第一层
# yield_folders 表示是否显示子目录,为False只遍历子目录中的文件,
# 但不返回字母名
def all_files(root, patterns='*', single_level=False, yield_folders=False):
  # 将模式从字符串中取出放入列表中
  patterns = patterns.split(';')
  for path, subdirs, files in os.walk(root):
    if yield_folders:
      files.extend(subdirs)
    files.sort()
    for name in files:
      for pattern in patterns:
        if fnmatch.fnmatch(name, pattern):
          yield os.path.join(path, name)
          break
    if single_level:
      break
for file in all_files('d:\\pm', '*.s;*.c', False, False):
  print(file)

希望本文所述对大家的Python3程序设计有所帮助。