os.walk()的使用:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
os.walk()会产生一个三元组:(文件夹路径,文件夹名字,文件名)
os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。
每次遍历的对象都是返回的是一个三元组(root,dirs,files)
得到当前目录下所有以py结尾的文件,并输出最新修改的五个文件
# -*- coding: utf-8 -*-
import os,sys
import fnmatch
import time
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=['*.py'], exclude_dirs=[]):
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_dirs:
if d in dirnames:
dirnames.remove(d)
d=input('输入文件目录:')
timelist=[]
for item in find_specific_files(d):
timelist.append([item,os.path.getmtime(item)])
result=sorted(timelist, key=lambda list:list[1],reverse=True)[:5]
for a in result:
print(a[0],time.ctime(a[1]))