参考: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. 解决jQuery.live在mobile safari(iphone / ipad / ipod)绑定失败的问题

    解决方案: 给要使用live绑定事件的元素,添加“cursor:pointer”样式即可! 如: a,input,td{cursor:pointer;}

  2. Linux学习3——磁盘文件管理系统与压缩和打包操作

    一.写在前面  本节将对Linux的磁盘文件系统.文件的压缩打包等操作进行简要介绍. 二.完成目标 1.了解磁盘文件系统的接本知识 2.操作文件和目录的相关命令 3.文件系统的简单操作命令 4.Lin ...

  3. android Handler更新UI

    android中经常需要更新界面某个元素的值,但是在主线程中是不可以直接更新主线程的值.这里推荐通过handler机制来更新值. 一Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主 ...

  4. 异步消息处理机制——Handler用法

    Handler 1. Message Messsge是线程之间传递的消息,它可以在内部携带少量的信息,用于在不同线程之间交换数据,Message的what字段,除此之外还可以使用arg1和arg2字段 ...

  5. 数据库基础(变量、运算符、if语句、while语句)

    数据库基础(变量.运算符.if语句.while语句)   变量: 定义变量:declare @变量名 数据类型 变量赋值:set @变量名 = 值 输出:print 变量或字符串 SQL语言也跟其他编 ...

  6. SQL Server 死锁检查

    示例代码 select spid, blocked, status, hostname, program_name, hostprocess, cmd from sysprocesses -- kil ...

  7. 远程控制利器TeamViewer使用教程(图)

    TeamViewer是什么? 他是一款免费的可以穿透内网的远程控制软件,可以实现桌面共享,文件传送等功能,简单一点说就是和QQ远程协助一样,但是比QQ的远程协助功能更为强大. TeamViewer与木 ...

  8. js第四章作用域

    一.动态的属性 //创建了一个变量并且保存在了变量person中 var person = new Object(); //为该对象添加了一个名为name的属性,将字符串值‘NiCholas’赋值给n ...

  9. C语言 —— 括号配对问题(不使用栈)

    最近在南阳理工的OJ上刷题,看到一个有点意思的题目 网上的答案大多都使用了栈,可惜我还没有学习数据结构,所以只能用简单的方法来解决 题目的链接在这 http://acm.nyist.net/Judge ...

  10. 文本导出到pdf文件

    程序中数据导出是经常有的需求,今天学习把文本导出到pdf文件.主要是用QPrinter,QPainter TextEditToPdf::TextEditToPdf(QWidget *parent, Q ...