1 Star 0 Fork 0

流风一剑1990/FileBackUp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
FileFilter.py 3.27 KB
一键复制 编辑 原始数据 按行查看 历史
setycyas 提交于 2018-11-13 14:28 . Upload DoBackUp.py FileFilter.py
'''备份文件用的脚本.
使用方法为:指定一个根目录,以及一个时间段.
找出该根目录(含子目录)下的所有文件中,创建时间与最后修改时间的较大者处于指定时间段的文件.
对这些文件进行备份.
目前的备份方法是生成三个文本文件记录所有这些文件,所有目录,以及基本信息,然后再写一个脚本复制.
本脚本只做到记录这一步.另外写脚本进行复制,也可以写脚本进行其他压缩打包等操作.
注意目录记录是有顺序的,方便访问并以此生成新的对应目录
'''
import os
import time
import sys
class FileFilter:
## 通过指定根目录,开始时间,结束时间(时间格式为"%Y-%m-%d %H:%M:%S")指定备份范围,
## 并指定生产的记录文件(默认为当前目录下的logFiles.txt, 目录表文件logDirs.txt(用于备份时生成对应目录),
## 备份设定信息logInfo.txt
def __init__(self, rootDir, startTime, endTime,
logFiles = sys.path[0]+'\\logFiles.txt', logDirs = sys.path[0]+'\\logDirs.txt',
logInfo = sys.path[0]+'\\logInfo.txt'):
# 复制参数
self._rootDir = rootDir
self._startTime = startTime
self._endTime = endTime
self._logFiles = logFiles
self._logDirs = logDirs
self._logInfo = logInfo
# 需要备份的文件表
self._fileList = []
# 目录表
self._dirList = []
# 真正的开始,结束时间
self._realStart = time.mktime(time.strptime(self._startTime, "%Y-%m-%d %H:%M:%S"))
self._realEnd = time.mktime(time.strptime(self._endTime, "%Y-%m-%d %H:%M:%S"))
return
## 指定一个文件的完整路径,检查是否符合备份标准
def _checkFile(self, fpath):
if(not os.path.isfile(fpath)):
return False
mtime = os.path.getmtime(fpath) # 修改时间
ctime = os.path.getctime(fpath) # 创建时间
lastTime = max(mtime,ctime)
if ((lastTime < self._realStart) or (lastTime > self._realEnd)):
return False
return True
## 主方法,遍历根目录,写入记录文本
def main(self):
for rt, dirs, files in os.walk(self._rootDir):
for f in files:
fpath = rt + '\\' +f
if (self._checkFile(fpath)):
self._fileList.append(fpath)
for d in dirs:
self._dirList.append(rt+'\\'+d)
# 写入基本信息日志
text = 'rootDir='+self._rootDir+'\nstartTime='+self._startTime+'\nendTime='+self._endTime
with open(self._logInfo, 'w') as f:
f.write(text)
print('备份信息写入完成:')
print(text)
print('='*20)
# 写入目录记录
text = '\n'.join(self._dirList)
with open(self._logDirs, 'w') as f:
f.write(text)
print('目录文件查找完成:')
print(text)
print('='*20)
# 写入备份文件记录
text = '\n'.join(self._fileList)
with open(self._logFiles, 'w') as f:
f.write(text)
print('备份文件记录完成:')
print(text)
print('='*20)
# 完成
print('备份准备与信息记录全部完成!')
return
## 开始
if __name__ == '__main__':
rootDir = r'D:\MyDocument\MyNote'
startTime = "2018-11-13 1:1:1"
endTime = "2018-11-13 15:1:1"
ff = FileFilter(rootDir ,startTime, endTime)
ff.main()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/liufengyijian/FileBackUp.git
git@gitee.com:liufengyijian/FileBackUp.git
liufengyijian
FileBackUp
FileBackUp
master

搜索帮助