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 13 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
从django的中间件直接返回请求的方法
May 30 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
Python爬取成语接龙类网站
Oct 19 Python
Python基础之文件读取的讲解
Feb 16 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
在Python中字典按值排序的实现方法
Nov 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
PHP学习笔记之二
2011/01/17 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
JQuery中$之选择器用法介绍
2011/04/05 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
JavaScript中Function详解
2015/02/27 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python调用java的Webservice示例
2014/03/10 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python实现关键词提取的示例讲解
2018/04/28 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
金讯Java笔试题目
2013/06/18 面试题
数字天堂软件测试面试题
2012/12/23 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
过滤器的用法
2013/10/08 面试题
会计自我鉴定范文
2013/10/06 职场文书
会计人员岗位职责
2014/03/19 职场文书
文艺晚会策划方案
2014/06/11 职场文书
绵山导游词
2015/02/05 职场文书
导师工作推荐信
2015/03/27 职场文书
Java基础——Map集合
2022/04/01 Java/Android