参考: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. Java基础笔记-异常总结,包

    异常:是对问题的描述,将问题进行对象封装, 异常的体系: Throwable: 1.Error 2.Exception 1.RuntimeException 异常体系的特点: 异常体系中的所有类以及建 ...

  2. MAVEN项目,Eclipse启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    由于是maven项目,tomcat在发布项目的时候没有同时发布maven依赖所添加的jar包,所以报此错误: 解决办法: 项目右键 —> 属性 -> Deployment Assembly ...

  3. c# 自定义位数生成激活码

    Random random = new Random(~unchecked((int)DateTime.Now.Ticks));private string CreateAndCheckCode(Ra ...

  4. ios字符串截取

    最近刚从 . net 转到ios平台  又开始了新的学习,所以开始写博客,这样可以让我每天都能进步一点点 对字符串的操作很多情况下和c#中的不一样 1.字符串的声明 //声明字符串 NSString  ...

  5. JavaScript 面向对象思想 贪吃蛇游戏

    js代码: 游戏的对象 ,食物,蛇 ,游戏控制思路如下 (完整代码在https://github.com/774044859yf/ObjectSnakeGame下载) var snake = { aS ...

  6. struts2 ActionSupport关联源码

     

  7. Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 10 declared in library

    Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : uses-sdk: ...

  8. 让Safari使用Chrome的代理

    Pac文件可以从switchSharp中导出 Configuring Safari manually Getting Started Guide | Cloud Web Protection Solu ...

  9. "创业"半年

                作为一个程序员, 因为受够了”给别人实现梦想太累”的念头, 又受到”外面给出更高薪水”的诱惑, 果断离职创业. 但原本是要创业的, 过了半年, 变成了失业, 这其中到底经历了哪 ...

  10. HTTP协议漫谈(转)

    转自:http://www.cnblogs.com/CareySon/archive/2012/04/27/HTTP-Protocol.html HTTP的定义和历史 在一个网络中.传输数据需要面临三 ...