python实现按日期归档文件

  在工作过程中,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归档文件的资料请关注我们其它相关文章!

(0)

相关推荐

  • 如何使用 Python 读取文件和照片的创建日期

    本文记录,如何使用 Python 来抓取,图片或者文件的,创建日期,修改日期 1. 读取照片创建日期(._getexif()) from PIL import Image imgPath = 'C:/Users/xx/Desktop/xxxxx.jpg' imge = Image.open(imgPath) exif_data = imge._getexif() ImageDate = exif_data[36867] # 或者 ImageDate = exif_data[306] print(

  • Python3实现将文件归档到zip文件及从zip文件中读取数据的方法

    本文实例讲述了Python3实现将文件归档到zip文件及从zip文件中读取数据的方法.分享给大家供大家参考.具体实现方法如下: ''''' Created on Dec 24, 2012 将文件归档到zip文件,并从zip文件中读取数据 @author: liury_lab ''' # 压缩成zip文件 from zipfile import * #@UnusedWildImport import os my_dir = 'd:/中华十大名帖/' myzip = ZipFile('d:/中华十大

  • Python实现文件按照日期命名的方法

    本文实例讲述了Python实现文件按照日期命名的方法.分享给大家供大家参考.具体实现方法如下: 这里实现文件按照创建的时期批量重命名的功能 # -*- coding: utf-8 -*- import os import time import datetime rootDir = "I:/1/" dic={} for dirName,subDirs,fileList in os.walk(rootDir): print dirName for fn in fileList: fnpa

  • Python中使用tarfile压缩、解压tar归档文件示例

    Python自带的tarfile模块可以方便读取tar归档文件,牛b的是可以处理使用gzip和bz2压缩归档文件tar.gz和tar.bz2. 与tarfile对应的是zipfile模块,zipfile是处理zip压缩的.请注意:os.system(cmd)可以使Python脚本执行命令,当然包括:tar -czf  *.tar.gz *,tar -xzf *.tar.gz,unzip等,当我觉得这样尽管可以解决问题,但我觉得很业余. 使用tarfile压缩 复制代码 代码如下: import

  • Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法

    本文实例讲述了Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法.分享给大家供大家参考.具体实现方法如下: # 这里将一个文件树中的所有文件和子目录归档到一个tar归档文件,然后压缩 import tarfile, os # compression表示压缩算法,gz表示gzip颜色,bz2表示bzip2压缩, # 空字符串表示不压缩 # folder_to_backup: 要归档的文件夹 # dest_folder 表示目标文件夹 def make_tar(folder_to

  • python实现按日期归档文件

    在工作过程中,data目录会一直接收文件,收到的文件放到一个大目录里不好判断是否漏收,也不利于检索: 所以写了个脚本,每天早上九点用Windows计划执行,将昨日这个文件夹内收到的文件全部归档,归档文件夹的名字就是昨天的日期,脚本及解释如下: import os import datetime import shutil   # get file name def get_datetime(i):     d = str((datetime.datetime.now() - datetime.t

  • python返回昨天日期的方法

    本文实例讲述了python返回昨天日期的方法.分享给大家供大家参考.具体实现方法如下: #-*-coding:utf-8-*- import datetime def getYesterday(): # today=datetime.date.today() oneday=datetime.timedelta(days=1) yesterday=today-oneday return yesterday 希望本文所述对大家的Python程序设计有所帮助.

  • Python SQLite3数据库日期与时间常见函数用法分析

    本文实例讲述了Python SQLite3数据库日期与时间常见函数.分享给大家供大家参考,具体如下: import sqlite3 #con = sqlite3.connect('example.db') con = sqlite3.connect(":memory:") c = con.cursor() # Create table c.execute('''CREATE TABLE stocks (date text, trans text, symbol text, qty re

  • 详解python 字符串和日期之间转换 StringAndDate

    python 字符串和日期之间转换 StringAndDate           这里给出实现代码,直接可以使用.大家可以看下. 实例代码: ''''' Created on 2013-7-25 @author: Administrator ''' from datetime import datetime class StringAndDate(object): ''''' String to Date(datetime) or date to string ''' def stringTo

  • PYTHON基础-时间日期处理小结

    步骤: 1. 掌握几种对象及其关系 2. 了解每类对象的基本操作方法 3. 通过转化关系转化 涉及对象 1. datetime >>> import datetime >>> now = datetime.datetime.now() >>> now datetime.datetime(2018, 1, 12, 23, 9, 12, 946118) >>> type(now) <type 'datetime.datetime'&

  • python判断输入日期为第几天的实例

    如下所示: # -*- coding: utf-8 -*- # 简述:要求输入某年某月某日 # 提问:求判断输入日期是当年中的第几天? def which_day(year,month,day): list=[31,28,31,30,31,30,31,31,30,31,30,31] whichday=0 if (year%4)==0 and (year%100)!=0 or (year%400)==0: list[1]=29 for i in range(1,month): if month =

  • Python正则表达式匹配日期与时间的方法

    下面给大家介绍下Python正则表达式匹配日期与时间 #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'Randy' import re from datetime import datetime test_date = '他的生日是2016-12-12 14:34,是个可爱的小宝贝.二宝的生日是2016-12-21 11:34,好可爱的.' test_datetime = '他的生日是2016-12-12 14:34,是个可

  • Python实现根据日期获取当天凌晨时间戳的方法示例

    本文实例讲述了Python实现根据日期获取当天凌晨时间戳的方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 ''' Created on 2019年4月9日 @author: Administrator ''' import datetime import time def get_day_zero_time(date): """根据日期获取当天凌晨时间""" if not date: r

  • Python读取指定日期邮件的实例

    背景:9月份有部分数据缺失,这部分数据在邮箱里,需要重新拉取,但是每天几百封邮件,总共有6.7万封邮件,使用stat()和retr(which)结合遍历很 耗时 基于如上背景,初始大致思路为: 使用二分法获取到需要恢复数据时间范围内的中间一个值,也就是第几封邮件,然后分两头遍历, 读取到所有需要的邮件 算法函数: 1.获取到邮件的时间,由于可能收到格林威治时间邮件,所以这里做了相应的处理 def getTimeStamp(cn): messages=mailServer.retr(cn)[1]

  • Python根据指定日期计算后n天,前n天是哪一天的方法

    本文实例讲述了Python根据指定日期计算后n天,前n天是哪一天的方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #!/usr/bin/python3 import datetime def getday(y=2017,m=8,d=15,n=0): the_date = datetime.datetime(y,m,d) result_date = the_date + datetime.timedelta(days=n) d = result_date.st

随机推荐