参考: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 '\t\t\ta:\t\t\t\t\t\tb:'  
    for f in sorted(commonfiles):  
        print f + "\t\t" + getPrettyTime(os.stat(A_path + "\\" + f)) + "\t\t" + getPrettyTime(os.stat(B_path + "\\" + f))
            
    onlyA = setA - setB
    print "#================================="  
    print "only in A '", A_path
    print "#================================="  
    print '\t\t\ta:\t\t\t\t\t\tb:'  
    for f in sorted(onlyA):  
        print f + "\t\t" + getPrettyTime(os.stat(A_path + "\\" + f))
    onlyB = setB - setA
    print "#================================="  
    print "only in B'" , B_path
    print "#================================="  
    print '\t\t\ta:\t\t\t\t\t\tb:'  
    for f in sorted(onlyB):  
        print f + "\t\t" + getPrettyTime(os.stat(B_path + "\\" + f))
if __name__ == '__main__':
    compareDir('f:/srcDir', 'f:/destDir')

python 文件夹比较的更多相关文章

  1. Python文件夹备份

    Python文件夹备份 import os,shutil def file_copy(path1,path2): f2 = [filename1 for filename1 in os.listdir ...

  2. Python 文件夹及文件操作

    import os import os.path from shutil import copy def copyfile(src, dst): count = 1 for filename in o ...

  3. python文件夹遍历,文件操作,获取文件修改创建时间

    在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前 ...

  4. python文件夹中pycache文件是什么

    python(pycache文件的问题):python属于脚本语言,执行python文件需要通过python解释器将源码转换为字节码,然后供cpu读取,pycache文件夹里面保存的就是py文件对应的 ...

  5. python 文件夹扫描

    扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...

  6. python文件夹copy器(多进程版)

    本节的练习的要求如下: 输入要拷贝文件夹的文件名称 读取该文件夹下的所有文件 启动5个进程来拷贝文件夹,将拷贝成功的文件名称放入队列中 主进程中显示文件拷贝的进度 代码如下: import multi ...

  7. Python文件夹与文件的操作(转)

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  8. python文件夹批处理操作

    如图所示,有一个test文件夹,里面有3个子文件夹,每个子文件夹中有若干图片文件    #场景1 读取一个文件夹中所有文件,存入到一个list表中 #coding:utf-8 from __futur ...

  9. Python文件夹与文件的操作 ZZ

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  10. python文件夹操作

    1.遍历文件夹下所有文件2.将后缀为.DCM的文件复制到指定文件夹 import os import shutil def all_path(dirname): result = []#所有的文件 f ...

随机推荐

  1. Wheel ProgressBar 实现之三——模拟进度过程

    1. 效果展示: 知道如何画圆弧,如何精确画出进度文本之后,我们将进入 Wheel ProgressBar 实现的最后一个过程:模拟其动态呈现过程.如下图所示,初始时显示进度为 0 (上图),点击进度 ...

  2. 编写javascript的基本技巧

    第一.编写可维护的代码 什么叫着编写可维护的代码呢?就是当我的做出来的项目,拿给其它编码团队能很快的看懂 你编写的代码,你的整个项目的逻辑等等.一个项目的修改维护是要比开发一个项目的成本 是要高的.例 ...

  3. MatLab实现FFT与功率谱

    FFT和功率谱估计 用Fourier变换求取信号的功率谱---周期图法 clf; Fs=1000; N=256;Nfft=256;%数据的长度和FFT所用的数据长度 n=0:N-1;t=n/Fs;%采 ...

  4. 2D转换

    转换是CSS3 中具有颠覆性的特征之一,可以实现元素的位移.旋转.变形.缩放,甚至支持矩阵方式,配合即将学习的过渡和动画知识,可以取代大量之前只能靠Flash才可以实现的效果.在css3 当中,通过t ...

  5. androik_sdk 更新慢问题解决办法。

    在windows中更改hosts(找到文件夹C:\Windows\System32\drivers\etc找到里面的hosts文件 )在这里添加74.125.237.1 dl-ssl.google.c ...

  6. iOS集成微信支付

    微信支付的开发 前言:之前听说过微信支付有很多坑,其实没有想象的那么坑,整体感觉很容易上手,按照它的流程来不会有错!PS:官方的流程看的TMD烦,好啦,废话有点多,进入开发.(ps:每个微信的版本一直 ...

  7. SpringMVC(二) —— 中文乱码处理

    Get的乱码处理 改tomcat中server.xml中的port=“8080”,加上一个 URIEncoding=”utf-8” 如下图: 2.Post乱码的处理 在web.xml文件中加入 < ...

  8. 提高php代码质量 36计

    1.不要使用相对路径 常常会看到: ? 1 require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. ...

  9. Android Webview与Html5交互

    转:http://fangjie.info/?p=417#more-417   一.WebView.setWebViewClient(new MyWebViewClient()); 1.public ...

  10. 关于 <video> 的兼容性测试

    测试浏览器 Firefox: 33.0.1 Chrome: 38.0.2125.111 m Safari: 5.1.7 IE: 9 和 10(6,7,8不考虑) 经测试:FF.Chrome.Safar ...