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实现搜索本地文件信息写入文件的方法
Feb 22 Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 Python
Python实现的双色球生成功能示例
Dec 18 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
python 异或加密字符串的实例
Oct 14 Python
Django开发的简易留言板案例详解
Dec 04 Python
使用python+whoosh实现全文检索
Dec 09 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 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
PHP可变变量学习小结
2015/11/29 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
phpfpm的作用和用法
2019/10/10 PHP
滚动经典最新话题[prototype框架]下编写
2006/10/03 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
node.js实现端口转发
2016/04/14 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python实现线程池代码分享
2015/06/21 Python
python清除字符串里非字母字符的方法
2015/07/02 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python机器学习之神经网络(三)
2017/12/20 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
监察建议书范文
2014/03/12 职场文书
2015年检验科工作总结
2015/04/27 职场文书
MySQL连表查询分组去重的实现示例
2021/07/01 MySQL