python 文件夹比较

参考:http://blog.csdn.net/imzoer/article/details/8675078

文件比较:filecmp模块:filecmp

'''
Created on 2014-6-6
@author: jyp
@module: pro1.filecmp_test}
'''

import time
import os
from site import setBEGINLIBPATH

def getPrettyTime(state):  
    return time.strftime('%y-%m-%d %H:%M:%S', time.localtime(state.st_mtime))

def compareDir(A_path, B_path):
    A_files = []
    B_files = []
    for root, dirs, files in os.walk(A_path):
        for file in files:
            A_files.append(root + "\" + file)
    for root, dirs, files in os.walk(B_path):
        for file in files:
            B_files.append(root + "\" + file)
    a_files = []
    b_files = []
    a_path_len = len(A_path)
    b_path_len = len(B_path)
    
    for file in A_files:
        a_files.append(file[a_path_len:])
    for file in B_files:
        b_files.append(file[b_path_len:])
    setA = set(a_files)
    setB = set(b_files)
    commonfiles = setA & setB
    print "#================================="  
    print "common in '", A_path, "' and '", B_path, "'"  
    print "#================================="  
    print ' a: b:'  
    for f in sorted(commonfiles):  
        print f + " " + getPrettyTime(os.stat(A_path + "\" + f)) + " " + getPrettyTime(os.stat(B_path + "\" + f))
            
    onlyA = setA - setB
    print "#================================="  
    print "only in A '", A_path
    print "#================================="  
    print ' a: b:'  
    for f in sorted(onlyA):  
        print f + " " + getPrettyTime(os.stat(A_path + "\" + f))
    onlyB = setB - setA
    print "#================================="  
    print "only in B'" , B_path
    print "#================================="  
    print ' a: b:'  
    for f in sorted(onlyB):  
        print f + " " + getPrettyTime(os.stat(B_path + "\" + f))
if __name__ == '__main__':
    compareDir('f:/srcDir', 'f:/destDir')
   

原文地址:https://www.cnblogs.com/yongpan666/p/3773712.html