python备份文件最简单案例_Python实现备份文件实例
本文实例讲述了Python实现备份文件的方法,是一个非常实用的技巧。分享给大家供大家参考。具体方法如下:
该实例主要实现读取一个任务文件, 根据指定的任务参数自动备份.
任务文件的格式: (注意,分号后面注释是不支持的)
[task] ; 一项任务开始
dir=h:/Project ; 指定备份的目录
recusive=1 ; 是否递归子目录
suffix=h|cpp|hpp|c|user|filters|vcxproj|sln|css|gif|html|bmp|png|lib|dsw|dsp|htm|html|ico|ini|jpg|rc|vssscc ; 指定备份的扩展名
exclude=0 ; 指定是备份上面的参数指定的扩展名还是排除指定的扩展名
zip=Project.zip ; 备份后的文件路径名
python代码如下:
# -*- coding: utf-8 -*-
import sys
import os
import zipfile
class Task:
#dir str directory
#bsub BOOL include subdirectory
#sfx str postsuffix ,sepeated by '|'
#ecld BOOL include or execlude the postsuffix sfx
def __init__(self,dir,bsub,sfx,ecld,zip):
self.dir = dir
self.bsub = bsub
self.suffix = sfx.split("|")
self.exclude = ecld
self.zip = zip
@staticmethod
def isfilter(sfx,sfxs,bexcld):
bFound = False
for e in sfxs:
if e == sfx:
bFound = True
break
if bexcld:
return not bFound;
else:
return bFound;
class QBackup:
'''备份指定目录下具备指定扩展名的文件'''
def __init__(self):
self._list = []
def __del__(self):
pass
#tfile 任务文件
def ReadTask(self,tfile):
dir = ""
bsub = False
sfx = ""
becld = False
zip = ""
try:
f = open(tfile,'r')
while True:
line = f.readline()
if len(line) == 0:
break;
line = line.strip(" ")
if "[Task]/n".lower() == line.lower():
# 读取接下来的4行
iline = 1
while iline <= 5:
line = f.readline()
line = line.strip(" /t/n") # 去除前后的空白符
idx = line.find("=")
if -1 == idx:
break;
atti = line[0:idx]
value = line[idx+1:]
print(value)
if "dir" == atti:
dir = value
elif "recusive" == atti:
bsub = bool(int(value))
elif "suffix" == atti:
sufix = value
elif "exclude" == atti:
becld = bool(int(value))
elif "zip" == atti:
zip = value
else:
break
iline += 1
else:
t = Task(dir,bsub,sufix,becld,zip)
self._list.append(t)
except:
return False
return True
def DoBackup(self):
for e in self._list:
try:
zip = zipfile.ZipFile(e.zip,'w',zipfile.ZIP_DEFLATED)
self.ZipDir(zip,e.dir,e.bsub,e.suffix,e.exclude)
zip.close()
except:
print("exception raised!")
return False
return True
def ZipDir(self,zip,dir,bsub,sfxs,ecld):
subdir = ""
path = ""
if os.path.isdir(dir):
paths = os.listdir(dir)
#备份本目录
print("ZipDir: ",dir)
for e in paths:
path = dir + "/" + e
ext = os.path.splitext(e)[1][1:]
if os.path.isfile(path) and Task.isfilter(ext,sfxs,ecld):
print ("ZipFile: ",path)
zip.write(path)
#清理子目录
if bsub:
for e in paths:
subdir = dir + "/" + e
self.ZipDir(zip,subdir,bsub,sfxs,ecld)
def PrintTask(self):
for e in self._list:
print (e.dir,e.bsub,e.suffix,e.exclude,e.zip)
if '__main__' == __name__:
c = QBackup()
c.ReadTask("bkup.txt")
c.DoBackup()
希望本文所述对大家Python程序设计的学习有所帮助。
python备份文件最简单案例_Python实现备份文件实例相关推荐
- python爬虫requests简单案例_Python小例子:一个最简单的爬虫
学习编程的过程中总是有些枯燥.成天面对黑乎乎的窗口可能真的有些无聊.来,我们做点好玩的事情吧.比如 将网络上你喜欢的图片保存下来.不过千里之行 始于足下,在学习将网页上的图片下载下来之前.我们首先要学 ...
- python爬虫requests简单案例_python网络爬虫(三)requests库的13个控制访问参数及简单案例...
酱酱~小编又来啦~
- python中continue用法案例_Python continue语句实例用法
Python continue语句: 当执行到 continue 语句时,将不再执行本次循环中 continue 语句接下来的部分,而是继续下一次循环. lst = [7,8,9,4,5,6] for ...
- python有什么简单项目_python有什么简单项目适合初学者?
python有什么简单项目适合初学者?下面我将介绍几个简单的Python小项目,便于大家学习提升自己的Python开发水平.感兴趣的朋友一起来了解一下吧. 适合初学者学习的项目: 实例一:满分推荐,非 ...
- python用于数据分析的案例_Python数据分析经典案例
从事机器学习,数据分析,数据挖掘的同学们以及python使用者 选择经典案例基于真实数据集,从数据预处理开始到建立机器学习模型以及效果评估,完整的讲解如何使用python及其常用库进行数据的分析和模型 ...
- python解析json文件案例_Python加载带有注释的Json文件实例
由于json文件不支持注释,所以如果在json文件中标记了注释,则使用python中的json.dump()无法加载该json文件. 本文旨在解决当定义"//"为json注释时,如 ...
- python多元线性回归模型案例_Python 实战多元线性回归模型,附带原理+代码
原标题:Python 实战多元线性回归模型,附带原理+代码 作者 | 萝卜 来源 | 早起Python( ID:zaoqi-python ) 「多元线性回归模型」非常常见,是大多数人入门机器学习的第一 ...
- python多分支结构案例_python的程序控制结构-分支结构与身体质量指数案例--python-6-da...
python的程序控制结构-分支结构与身体质量指数案例--python-6-da python的程序控制结构-分支结构与身体质量指数案例--python-6-days 程序控制结构 - 单分支 if ...
- python网页爬虫漫画案例_Python爬虫案例:js解密 爬取漫画
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于Python爬虫案例,作者麦自香 转载地址 https://blo ...
最新文章
- 第五次作业:四则运算之升级
- Java怎么定义图片公共路径_【Java】springboot配置图片访问路径
- 3年5000家,苏宁小店如何立足“中国第一O2O社区小店”?
- 《不留》--王菲 Faye
- 2014江苏省职称计算机,2014年江苏省职称计算机office多选题.doc
- bloc+rxdart解决代码混乱大问题
- 周学习进度----03
- 准备-上机考试-华为
- python 批量打印文档_使用python将Excel数据填充Word模板并生成Word
- 利用正则表达式限制网页表单里的文本框输入内容
- java私塾设计模式_Java私塾:研磨设计模式 之 访问者模式(Visitor)
- 简易网站流量统计工具
- 顶级赛事!2021 CCF大数据与计算智能大赛重磅开赛!
- 大量的Oracle数据库视频教程提供下载
- 一文带你读懂“TRIZ”
- Afterlogic xmail 邮局软件不能收email 设置
- mysql用户的创建、修改、删除与密码修改
- 清除盗游戏帐号的密西木马变种(Trojan.PSW.Misc.r)等
- Open vSwitch + VLAN 组网
- 计算机技术及其关系,计算机技术和自动化的关系.doc
热门文章
- nginx ---- nginx服务器版本升级和新增模块
- python中的sklearn.svm.svr_python机器学习库scikit-learn:SVR的基本应用
- 打开终端输入没反应_忘掉Iterm2,试试这款跨平台终端工具
- excel小写转大写公式_喂!这边居然有演示的Excel快捷键!
- 4比较三个数的大小输出最大的值并从小到大排序输出
- JAVA 不足N位后面补XX符号
- git如何查看和切换账号
- mysql服务器cpu资源占用满
- Linux压缩文件与解压文件(*.zip)
- Android开发笔记(一百三十三)导航视图NavigationView