时间:2021-05-23
在工作过程中,data目录会一直接收文件,收到的文件放到一个大目录里不好判断是否漏收,也不利于检索;
所以写了个脚本,每天早上九点用Windows计划执行,将昨日这个文件夹内收到的文件全部归档,归档文件夹的名字就是昨天的日期,脚本及解释如下:
import osimport datetimeimport shutil# get file namedef get_datetime(i):d = str((datetime.datetime.now() - datetime.timedelta(days=i)).date()).split("-")timeoffile = d[0] + d[1] + d[2]return(timeoffile)# new filedef get_newfile(i):filename = get_datetime(i)aimPath = 'C:\\data\\' + filenameisExists=os.path.exists(aimPath)if not isExists:os.makedirs(aimPath)print(aimPath + 'ok!')return aimPathelse:print(aimPath + 'file is exists!')return Falsedef delete_flie(filePath):for i,j,k in os.walk(filePath):n = 0while n < len(k):fileneed = filePath + '\\' + k[n]if(os.path.exists(fileneed)):os.remove(fileneed)else:passn = n + 1# get file name and movedef get_filename(filePath):for i,j,k in os.walk(filePath):n = 0while n < len(k):fileneed = filePath + '\\' + k[n]if(os.path.exists(fileneed)):shutil.move(fileneed,aimPath)else:passn = n + 1# Monday specialdef is_Monday():if datetime.datetime.now().weekday() == 0:return 3else:return 1filePath = 'C:\\data'pos = is_Monday()aimPath = get_newfile(pos)get_filename(filePath)delete_flie(filePath)该函数调用get_datetime函数,获得指定日期,并按照YYYYMMDD的格式将日期拼接;
使用isExists,来对文件名是否存在进行校验,如果改文件夹不存在,则新建文件夹。
在移动结束后,删除原目录的文件;
在删除前要使用os.path.exists验证待删除文件是否存在。
获取date文件夹内的文件名,并将其移动到新文件夹内;
在移动前要使用os.path.exists验证待移动文件是否存在。
周一的时候需要将周五、周六、周日的文件都放在以周五日期命名的文件夹中,所以使用这个函数来判断是星期几;
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归档文件的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python自带的tarfile模块可以方便读取tar归档文件,牛b的是可以处理使用gzip和bz2压缩归档文件tar.gz和tar.bz2。与tarfile对
怎样实现对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性,批处理可以实现到吗?有点类似于对
本文实例为大家分享了Java实现文件归档和解档的具体代码,供大家参考,具体内容如下文件的归档packagecn.yimen.archiver;importjav
本文实例讲述了Python实现文件按照日期命名的方法。分享给大家供大家参考。具体实现方法如下:这里实现文件按照创建的时期批量重命名的功能#-*-coding:u
风貌类:是对网站原型的克隆,保持原有样式和层级关系,每一件以抓取日期命名,打开文件后显示对应日期的网站首页,保存网站三层风貌(鼠标点击两次),按月生成归档文件。