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 10 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
Python中交换两个元素的实现方法
Jun 29 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
python多线程分块读取文件
Aug 29 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
Python爬虫抓取指定网页图片代码实例
Jul 24 Python
浅谈python 类方法/静态方法
Sep 18 Python
python xlwt模块的使用解析
Apr 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
Vue组件内部实现一个双向数据绑定的实例代码
2019/04/04 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python中shutil模块的学习笔记教程
2017/04/04 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
详解python UDP 编程
2020/08/24 Python
python批量修改文件名的示例
2020/09/27 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
上班玩手机检讨书
2014/02/17 职场文书
2014年新生军训方案
2014/05/01 职场文书
民事起诉书范本
2015/05/19 职场文书
学风建设主题班会
2015/08/17 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
Python 如何实现文件自动去重
2021/06/02 Python