python源码目录都是什么_Python——目录对比源代码

#/usr/bin/env python #coding=utf8 #用来对比目录中文件的区别 #2015.11.12 #V0.0.0.1 import os import sys import filecmp import re import shutil holderlist=[] #递归获取更新项函数 def compareme(dir1,dir2):         dircomp=filecmp.dircmp(dir1,dir2) #获取左目录中的文件或者目录         only_in_one=dircomp.left_only #不匹配的文件         diff_in_one=dircomp.diff_files #定义源目录绝对路径         dirpath=os.path.abspath(dir1) #将更新文件名或者目录追加到holderlist         [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 "Usage: ",sys.argv[0],"datadir backupdir"                 sys.exit()         source_files=compareme(dir1,dir2) #获取dir1的绝对路径         dir1=os.path.abspath(dir1) #如果不是以/结尾则在后面加上个/         if not dir2.endswith('/'):                  dir2=dir2+'/' #获取dir2的绝对路径         dir2=os.path.abspath(dir2)         destination_files=[] #遍历输出返回的差异文件或者目录的清单         for item in source_files:                 createdir_bool=False #将原目录差异清单对应替换成备份目录                 destination_dir=re.sub(dir1,dir2,item)                 destination_files.append(destination_dir) #再次调用compareme函数标记                 if os.path.isdir(item):                         if not os.path.exists(destination_dir):                                 os.makedirs(destination_dir)                                 createdir_bool=True #通过createdir_bool参数来判断是否还有子目录                 if createdir_bool:                         destination_files=[]                         source_files=[]                         source_files=compareme(dir1,dir2)                 for item in source_files:                         destination_dir=re.sub(dir1,dir2,item)                         destination_files.append(destination_dir)         print "update item:"         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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值