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的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
python实现画一颗树和一片森林
Jun 25 Python
Python对切片命名的实现方法
Oct 16 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
python基于openpyxl生成excel文件
Dec 23 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 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/02 无线电
如何把PHP转成EXE文件
2006/10/09 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
详解js的事件代理(委托)
2016/12/22 Javascript
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Vue v-bind动态绑定class实例方法
2020/01/15 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
js实现滑动滑块验证登录
2020/07/24 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
浅谈python字符串方法的简单使用
2016/07/18 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
解决python 文本过滤和清理问题
2019/08/28 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
新闻编辑自荐书范文
2014/02/12 职场文书
创意婚礼策划方案
2014/05/18 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
vue使用echarts实现折线图
2022/03/21 Vue.js