`
null_386
  • 浏览: 44226 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

python备份文件

阅读更多

任务:

你想对某个目录树中的被修改过的文件多次备份,以防止某次修改意外地抹去了你的编辑结果。 周期性的执行以下python脚本可以对指定目录下的文件进行备份。

#-*- coding:utf-8 -*-
import sys,os,shutil,filecmp

MAXVERSIONS = 100

def backup(tree_top, bakdir_name="bakdir"):
	for dir,subdirs,files in os.walk(tree_top):
		#确保每个目录都有一个备份目录
		backup_dir = os.path.join(dir,bakdir_name)
		if not os.path.exists(backup_dir):
			os.makedirs(backup_dir)
		#停止对备份目录的递归
		subdirs[:] = [d for d in subdirs if d != bakdir_name]
		for file in files:
			filepath = os.path.join(dir,file)
			destpath = os.path.join(backup_dir,file)
			#检查以前的版本是否存在
			for index in xrange(MAXVERSIONS):
				backfile = '%s.%2.2d' % (destpath, index)
				if not os.path.exists(backfile):
					break
		if index > 0:
			old_backup = '%s.%2.2d' % (destpath,index-1)
			abspath = os.path.abspath(filepath)
			try:
				if os.path.isfile(old_backup) and filecmp.cmp(abspath, old_backup,shallow=False):
					continue
			except OSError:
				pass
		try:
			shutil.copy(filepath,backfile)
		except OSError:
			pass

if __name__ == '__main__':
	try:
		tree_top = sys.argv[1]
	except IndexError:
		tree_top = '.'
	backup(tree_top)

 

如果想针对某个特定后缀名的文件进行备份,(或对除去某个扩展名之外的文件进行备份);在 for file in files 循环内加一个适当的测试即可:

for file in files:
    name,ext = os.path.splitext(file)
    if ext not in ('.py','.txt','.doc'):
        continue

 

注意以下代码,避免os.walk递归到要备份的子目录。当os.walk迭代开始之后,os.walk根据subdirs来进行子目录迭代。这个关于os.walk的细节也是生成器应用的一个绝佳例子,它演示了生成器是如何通过迭代的代码获取信息,同时又是如何反过来影响迭代。

subdirs[:] = [d for d in subdirs if d != bakdir_name]

  

本段代码摘自《python cookbook》。

分享到:
评论

相关推荐

    Python特定文件备份方法源码

    Python备份文件的方法有很多种,和大家分享的这种方法是针对特定的文件类型来用python方法完成备份。简单的来理解就是:我们只对某个特定后缀名的文件进行检测及备份;在for file in files 循环的内部加一个适当的...

    python定时备份文件

    在IT行业中,Python是一种强大的脚本...综上所述,Python的定时备份文件涉及到定时任务调度、文件压缩、文件遍历以及异常处理等多个知识点,通过合理利用Python的相关库和工具,我们可以构建出高效可靠的文件备份系统。

    python文件备份源码.rar

    此外,`datetime`模块可以帮助我们在备份过程中添加时间戳,使得备份文件命名更具可读性。 在面向对象编程(OOP)的上下文中,我们可以设计一个名为`BackupManager`的类,它具有以下方法: 1. `__init__(self, ...

    python-备份文件

    该脚本是用python编写,用于对每日文件进行压缩备份存放,适用于初学者,望多指教~

    python实现文件的备份流程详解

    python实现输入要备份的文件名称:test.txt 12行代码实现文件备份功能 第一步:打开我们的pycharm软件,然后新建一个Python文件 第二步:新建好我们的Python文件后,我们在编辑界面输入以下代码: oldfilename=...

    Python实现备份文件实例

    本文实例讲述了Python实现备份文件的方法,是一个非常实用的技巧。分享给大家供大家参考。具体方法如下: 该实例主要实现读取一个任务文件, 根据指定的任务参数自动备份. 任务文件的格式: (注意,分号后面注释是不...

    Python 项目备份文件

    "Python项目备份文件"这个标题暗示我们这里涉及的是一个使用Python编程语言开发的项目,而“备份文件”则意味着这些文件是项目源代码或相关数据的副本,旨在防止数据丢失或损坏。在开发过程中,定期备份是非常重要的...

    python备份mysql数据库

    在这个场景中,"python备份mysql数据库"的实践主要涉及到以下几个核心知识点: 1. Python语言:Python是一种高级编程语言,以其简洁的语法和丰富的库资源而闻名。在备份MySQL数据库时,Python可以编写脚本来自动化...

    python备份文件的脚本

    实际效果:假设给定目录”/media/data/programmer/project/python” ,备份路径”/home/diegoyun/backup/“ , 则会将python目录下的文件按照全路经备份到备份路径下,形如: /home/diegoyun/backup/yyyymmddHHMMSS/...

    python3实现sqlserver数据库和文件异地备份

    Python3写的脚本,windows上应用的,实现服务器上的数据库通过磁盘映射备份到本地其他机器上的共享文件夹中,服务器上指定文件夹下的文件也备份到指定共享文件夹中,并发邮件通知

    python自动备份mysql数据库,并删除七天前文件

    本示例涉及的主题是使用Python来自动备份MySQL数据库,并且定期清理过期的备份文件,以保持存储空间的有效利用。下面将详细介绍这个过程以及相关的知识点。 首先,我们需要了解Python在数据库操作中的角色。Python...

    python定期备份交换机配置文件二

    Python 定期备份交换机配置文件 Python script 介绍 在网络维护中,交换机配置文件的备份是非常重要的。为了避免配置文件的丢失,需要定期备份交换机配置文件。本文将介绍如何使用 Python Script 实现交换机配置...

    基于Python的文件备份功能

    在windows环境下通过Python对重要的文件进行备份,备份的文件将打包为zip格式。由于windows环境下不提供标准的zip命令进行打包,因此要通过GnuWin32安装zip命令,并将C:\Program Files (x86)\GnuWin32\bin添加到系统...

    使用python自动备份文件打包脚本

    使用python语言写的打包备份文件脚本,使用tar命令进行打包。自定义备份目录,和备份源文件目录。

    python交换机自动备份脚本

    总的来说,Python交换机自动备份脚本结合了网络通信、文件操作、日志管理和配置管理等多个领域的知识。通过编写和使用这样的脚本,网络管理员能够自动化网络设备的维护工作,提高工作效率,同时减少人为错误。对于...

    python 简单备份文件脚本v1.0的实例

    #### Python备份代码实现 下面是具体的Python脚本示例,用于备份指定的文件或文件夹。 ```python # Filename: backup.py import os import time # 要备份的文件的列表 source = ['C:\\Users\\hm\\Desktop\\Web\\...

    python 华为锐捷交换机备份.zip

    5. 文件操作:Python的内置os和shutil库可用于创建、删除和移动文件,确保备份文件保存到指定位置。 6. 自动化定时任务:结合Python的schedule库或者操作系统级别的cron job,可以实现定期自动执行备份任务,确保...

    python Windows 压缩备份文件(支持多文件夹)

    python Windows 压缩备份文件(支持多文件夹)

    Python-备份站点目录和数据库支持备份到ftposscosemail

    标题中的“Python-备份站点目录和数据库支持备份到ftposscosemail”表明这是一个使用Python编写的脚本或工具,其主要功能是自动化地备份网站的目录内容和数据库,并且可以将备份文件上传到FTP服务器、阿里云OSS...

    python备份文件以及mysql数据库的脚本代码

    /usr/local/python import os import time import string source=[‘/var/www/html/xxx1/’,’/var/www/html/xxx2/’] target_dir=’/backup/’ target=target_dir+time.strftime(‘%Y%m%d’) zip_comm=’zip -r %s ...

Global site tag (gtag.js) - Google Analytics