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程序设计有所帮助。
下载本文