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 相关文章推荐
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
python中OrderedDict的使用方法详解
May 05 Python
快速查询Python文档方法分享
Dec 27 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
Python实现调用另一个路径下py文件中的函数方法总结
Jun 07 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
Python中logging日志库实例详解
Feb 19 Python
关于python中的xpath解析定位
Mar 06 Python
python小白学习包管理器pip安装
Jun 09 Python
java字符串格式化输出实例讲解
Jan 06 Python
Python+tkinter实现高清图片保存
Mar 13 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
javascript 验证日期的函数
2010/03/18 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
python多线程用法实例详解
2015/01/15 Python
python os.fork() 循环输出方法
2019/08/08 Python
python科学计算之narray对象用法
2019/11/25 Python
python getopt模块使用实例解析
2019/12/18 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
擅自离岗检讨书
2014/02/11 职场文书
初中家长寄语
2014/04/02 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS