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实现bitmap数据结构详解
Feb 17 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
对python中array.sum(axis=?)的用法介绍
Jun 28 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
设置python3为默认python的方法
Oct 31 Python
Python实现的特征提取操作示例
Dec 03 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
Django CBV类的用法详解
Jul 26 Python
Keras之fit_generator与train_on_batch用法
Jun 17 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/02/25 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
php检查页面是否被百度收录
2015/10/28 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
详解Python模块化编程与装饰器
2021/01/16 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
医科大学生的自我评价
2013/12/04 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
幼教毕业生自我鉴定
2014/01/12 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
部门经理迟到检讨书
2015/02/16 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python