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群发邮件实例代码
Jan 03 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
Python中进程和线程的区别详解
Oct 29 Python
python实现kMeans算法
Dec 21 Python
python实现简单淘宝秒杀功能
May 03 Python
Django REST framework 分页的实现代码
Jun 19 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
Python爬虫爬取百度搜索内容代码实例
Jun 05 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
Python jieba库分词模式实例用法
Jan 13 Python
python ConfigParser库的使用及遇到的坑
Feb 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 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
用javascript实现画板的代码
2007/09/05 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python列表操作使用示例分享
2014/02/21 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
python删除过期文件的方法
2015/05/29 Python
Python处理json字符串转化为字典的简单实现
2016/07/07 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
如何利用find命令查找文件
2015/02/07 面试题
门卫岗位安全职责
2013/12/13 职场文书
无房证明范本
2014/09/17 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
保研推荐信范文
2015/03/25 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
python如何获取网络数据
2021/04/11 Python