python根据时间和类型查找文件并将该文件复制到新的文件夹下

在现实生活中,我们可能遇到需要对文件夹里的各种文档进行处理。
假设存在一种需求:文件夹里的文件太多,我们需要抽取出某个时间段以前的文件。
今天来实现下这个需求。
之前写过一些关于文件整理的,今天只是补充下。
python自动化办公:文件篇(自动整理文件,一键完成)

时间模块
python 日期和时间处理(time,datetime模块讲解)
os模块
Python os.path() 模块 详解 附算例

re模块
python :re模块基本用法

获取访问时间
t = os.path.getatime(filePath)
获取创建时间
t = os.path.getctime(filePath)
#获取修改时间
t = os.path.getmtime(filePath)

准备工作
原始数据文件夹

新建一个空白文件夹

代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author: yudengwu(余登武)
# @Date  : 2020/10/4
#@email:1344732766@qq.com

import os
import re

import time
from datetime import datetime
#首先定义规则,

pattern=re.compile(r'.+\.jpg|pdf')#定义文档类型,寻找jpg,pdf


for root ,dirs,files in os.walk(r'C:\Users\Shineion\Desktop\yu'):
    for name in files:

        file_path=os.path.join(root,name)#包含路径的文件
        if pattern.search(file_path) is not None :
            #print(file_path)#匹配到的文件 文件路径名

            ctime=time.localtime(os.path.getctime(file_path))#创建时间
            """
            #time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=13, tm_min=45, tm_sec=50, tm_wday=6,
                             tm_yday=264, tm_isdst=0)
            """

            ctime=time.strftime("%Y/%m/%d %H:%M:%S",ctime)#字符型
            """
            ctime
            2020/09/20 13:45:50
            """

            ctime=datetime.strptime(ctime, "%Y/%m/%d %H:%M:%S")#ctime 由字符型转换为时间性

            t1 = datetime(year=2020, month=10, day=26,hour = 7, minute = 9, second = 33)#自定义一个时间

            #做差
            if ctime<t1:
                command_line = 'copy %s D:\\余登武测试' % file_path.replace('/', '\\')#cmd复制命令
                os.system(command_line)#调用cmd
                print('复制成功')

结果和简单解析
结果:

查看下zhengjian为什么没有复制过来,发现属性为JPG

修改文档类型为
pattern=re.compile(r'.+\.jpg|pdf|JPG')

这次复制过来啦

修改日期为9月26日,即只要9月26日之前的文件(PDF,jpg)。

注意事项:有时文件复制失败 可能是文档名的原因(有些文档名即有中文,又有英文。容易失败)

代码解析

os.system(command_line)调用cmd来执行复制文件。
cmd复制文件命令:
copy 源文件 目的路径

time 时间不可以做差等计算,datetime可以

    ctime=time.localtime(os.path.getctime(file_path))#创建时间
     """
     #time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=13, tm_min=45, tm_sec=50, tm_wday=6,
                      tm_yday=264, tm_isdst=0)
     """

     ctime=time.strftime("%Y/%m/%d %H:%M:%S",ctime)#字符型
     """
     ctime
     2020/09/20 13:45:50
     """

     ctime=datetime.strptime(ctime, "%Y/%m/%d %H:%M:%S")#ctime 由字符型转换为时间性

还可以删除文件,不复制。

指令os.remove(文件)

在这里插入图片描述

电气工程的计算机萌新:余登武。
写博文不容易,如果你觉得本文对你有用,请点个赞支持下,谢谢。

在这里插入图片描述

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值