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将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
Python3爬虫里关于代理的设置总结
Jul 30 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
ajax 的post方法实例(带循环)
2011/07/04 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
php获取随机数组列表的方法
2014/11/13 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JavaScript函数详解
2015/02/27 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
JavaScript实现点击出现图片并统计点击次数功能示例
2018/07/23 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
学习十八大的心得体会
2014/09/12 职场文书
民间个人借款协议书
2014/09/30 职场文书
总结会主持词
2015/07/02 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
创业计划书详解
2019/07/19 职场文书
Pygame Event事件模块的详细示例
2021/11/17 Python