打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python源目录与备份目录差异检查并同步(示例代码)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import re
import filecmp
import shutil

holderlist=[]
def compareme(dir1,dir2):
	dircomp=filecmp.dircomp(dir1,dir2)
	only_in_one=dircomp.left_only
	diff_in_one=dircomp.diff_files
	dirpath=os.path.abspath(dir1)
	[holderlist.append(os.path.abspath(os.path.join(dir1,x))) for x in only_in_one]
	[holderlist.append(os.path.abspath(os.path.join(dir1,x))) for x in diff_in_one]
	if len(dircomp.common_dirs) > 0:
		for item in dircomp.common_dirs:
			compareme(os.path.abspath(os.path.join(dir1,item)),os.path.abspath(os.path.join(dir2,item)))
	return holderlist

def main():
	if len(sys.argv) > 2:
		dir1=sys.argv[1]
		dir2=sys.argv[2]
	else:
		print "请准确输入参数,例如:python comp.py datadir backupdir"
		sys.exit()
	source_files=compareme(dir1,dir2)
	dir1=os.path.abspath(dir1)
	if not dir2.endswith('/'): dir2=dir2+'/'
	dir2=os.path.abspath(dir2)
	destination_files=[]
	createdir_bool=False
	
	for item in source_files:
#		destination_dir=re.sub(dir1,dir2,item)
		destination_dir =item.replace(dir1, dir2)
		destination_files.append(destination_dir)
		if os.path.isdir(item):
			if not os.path.exists(destination_dir):
				os.makedirs(destination_dir)
				createdir_bool=True
	
	if createdir_bool:
		destination_files=[]
		source_files=[]
		source_files=compareme(dir1,dir2)
		for item in source_files:
			destination_dir = item.replace(dir1, dir2)
#			destination_dir=re.sub(dir1,dir2,item)
			destination_files.append(destination_dir)
			
	print "更新的内容:"
	print source_files
	copy_pair=zip(source_files,destination_files)
	for item in copy_pair:
		if os.path.isfile(item[0]):
			shutil.copyfile(item[0],item[1])
if __name__ == '__main__':
	main()
			
	
	
	
脚本代码可直接使用
	
	
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
python获取当前路径
分析:BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
python实现统计代码行数的方法
os.path.abspath和os.path.realpath区别
python实现将m3u8格式转换为mp4视频格式
我的Python笔记·模块化编程(三)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服