import os
import fnmatch
def is_file_match(filename, patterns):
for pattern in patterns:
if fnmatch.fnmatch(filename, pattern):
return True
return False
def find_specific_files(root, patterns=[‘*‘], exclude_dir=[]):
for root, dirnames, filenames in os.walk(root):
for filename in filenames:
if is_file_match(filename, patterns):
yield os.path.join(root, filename):
for d in exclude_dir:
if d in dirnames:
dirnames.remove(d)
#查找目录下所有文件
for item in find_specific_files(‘.‘)
print(item)
#查找目录下所有图片
patterns = [‘*.jpg‘,‘*.jpeg‘,‘*.png‘,‘*.tif‘,‘*.tiff‘]
for item in find_specific_files(‘.‘,patterns)
print(item)
#查找目录树中,除dir2目录以为其他目录下的所有图片
patterns1 = [‘*.jpg‘,‘*.jpeg‘,‘*.png‘,‘*.tif‘,‘*.tiff‘]
exclude_dirs = [‘dir2‘]
for item in find_specific_files(‘.‘,patterns1,exclude_dirs):
print(item)
#查找目录下最大的十个文件,find_specific_files已经能找到某个目录下的所有文件,只要获取文件大小并按大小排序,输出最大的十个文件即可
files = {name:os.path.getsize(name) for name in find_specific_files(‘.‘)}
result = sorted(files.items(),key=lambda d:d[1],reverse=True)[:10]
for i in enumerate(result,1):
print(i,t[0],t[1])
python walk历遍目录
Posted 一米八大高个儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python walk历遍目录相关的知识,希望对你有一定的参考价值。
以上是关于python walk历遍目录的主要内容,如果未能解决你的问题,请参考以下文章