python基础之循环遍历文件夹

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]))
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值