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随机生成指定长度密码的方法
Apr 04 Python
python+django快速实现文件上传
Oct 24 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
详解Python requests 超时和重试的方法
Dec 18 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
Python多线程 Queue 模块常见用法
Jul 04 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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
中国的第一台收音机
2021/03/01 无线电
php使用数组填充下拉列表框的方法
2015/03/31 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
javascript动画浅析
2012/08/30 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python相对企业语言优势在哪
2020/06/12 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
什么是规则表达式
2012/05/03 面试题
卫校毕业生自我鉴定
2013/10/31 职场文书
美工的岗位职责
2013/11/14 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
文明班集体申报材料
2014/05/23 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
2014年秘书工作总结
2014/11/25 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
索尼ICF-5900W收音机测评
2022/04/24 无线电