python实现按日期归档文件


Posted in Python onJanuary 30, 2021

在工作过程中,data目录会一直接收文件,收到的文件放到一个大目录里不好判断是否漏收,也不利于检索;

所以写了个脚本,每天早上九点用Windows计划执行,将昨日这个文件夹内收到的文件全部归档,归档文件夹的名字就是昨天的日期,脚本及解释如下:

import os
import datetime
import shutil
 
# get file name
def get_datetime(i):
    d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")
    timeoffile = d[0] + d[1] + d[2]
    return(timeoffile)
 
# new file
def get_newfile(i):
    filename = get_datetime(i)
    aimPath = 'C:\\data\\' + filename
    isExists=os.path.exists(aimPath)
    if not isExists:
        os.makedirs(aimPath)
        print(aimPath + 'ok!')
        return aimPath
    else:
        print(aimPath + 'file is exists!')
        return False
 
 
def delete_flie(filePath):
    for i,j,k in os.walk(filePath):
        n = 0
        while n < len(k):
            fileneed = filePath + '\\' + k[n]
            if(os.path.exists(fileneed)):
                os.remove(fileneed)
            else:
                pass
            n = n + 1
     
# get file name and move
def get_filename(filePath):
    for i,j,k in os.walk(filePath):
        n = 0
        while n < len(k):
            fileneed = filePath + '\\' + k[n]
            if(os.path.exists(fileneed)):
                shutil.move(fileneed,aimPath)
            else:
                pass   
            n = n + 1
 
# Monday special
def is_Monday():
    if datetime.datetime.now().weekday() == 0:
        return 3
    else:
        return 1
 
filePath = 'C:\\data'
pos = is_Monday()
aimPath = get_newfile(pos)
get_filename(filePath)
delete_flie(filePath)

1.get_newfile

该函数调用get_datetime函数,获得指定日期,并按照YYYYMMDD的格式将日期拼接;

使用isExists,来对文件名是否存在进行校验,如果改文件夹不存在,则新建文件夹。

2.delete_flie

在移动结束后,删除原目录的文件;

在删除前要使用os.path.exists验证待删除文件是否存在。

3.get_filename

获取date文件夹内的文件名,并将其移动到新文件夹内;

在移动前要使用os.path.exists验证待移动文件是否存在。

4.is_Monday

周一的时候需要将周五、周六、周日的文件都放在以周五日期命名的文件夹中,所以使用这个函数来判断是星期几;

datetime.datetime.now().weekday()函数是0-6来表示周一-周五,所以值为0的时候,返回3;

这个函数的值将传给get_newfile,再调用get_datetime函数,通过控制这段的i,来控制生成的日期时间:

d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")

注:shutil.copy会改变文件生成时间,不好对文件进行判断,所以要使用shutil.move移动文件

以上就是python实现按日期归档文件的详细内容,更多关于python归档文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python入门篇之列表和元组
Oct 17 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
Django model update的多种用法介绍
Mar 28 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
python抓取多种类型的页面方法实例
Nov 20 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
简单了解python shutil模块原理及使用方法
Apr 28 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
Jan 30 #Python
如何用Django处理gzip数据流
Jan 29 #Python
Spy++的使用方法及下载教程
Jan 29 #Python
Python实现随机爬山算法
Jan 29 #Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 #Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 #Python
python热力图实现简单方法
Jan 29 #Python
You might like
深入了解php4(1)--回到未来
2006/10/09 PHP
NT IIS下用ODBC连接数据库
2006/10/09 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
jQuery中attr()方法用法实例
2015/01/05 Javascript
javascript正则表达式总结
2016/02/29 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[43:53]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.22
2019/09/05 DOTA
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python AES加密实例解析
2018/01/18 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
十八届三中全会感言
2014/03/10 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
建筑节能汇报材料
2014/08/22 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
公司欠款证明
2015/06/24 职场文书
旅游投诉信范文
2015/07/02 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
vue判断按钮是否可以点击
2022/04/09 Vue.js
python APScheduler执行定时任务介绍
2022/04/19 Python
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技