`
qepwqnp
  • 浏览: 114704 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python模块学习 ---- filecmp 文件比较

阅读更多

filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单。python标准库还提供了difflib模块用于比较文件的内容。关于difflib模块,且听下回分解。

filecmp定义了两个函数,用于方便地比较文件与文件夹:

filecmp.cmp(f1, f2[, shallow]):

比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的属性(通过os.stat函数可以获得文件属性)。如果文件内容匹配,函数返回True,否则返回False。

filecmp.cmpfiles(dir1, dir2, common[, shallow]):

比较两个文件夹内指定文件是否相等。参数dir1, dir2指定要比较的文件夹,参数common指定要比较的文件名列表。函数返回包含3个list元素的元组,分别表示匹配、不匹配以及错误的文件列表。错误的文件指的是不存在的文件,或文件被琐定不可读,或没权限读文件,或者由于其他原因访问不了该文件。

filecmp模块中定义了一个dircmp类,用于比较文件夹,通过该类比较两个文件夹,可以获取一些详细的比较结果(如只在A文件夹存在的文件列表),并支持子文件夹的递归比较。

dircmp提供了三个方法用于报告比较的结果

  • report():只比较指定文件夹中的内容(文件与文件夹)
  • report_partial_closure():比较文件夹及第一级子文件夹的内容
  • report_full_closure():递归比较所有的文件夹的内容

dircmp还提供了下面这些属性用于获取比较的详细结果

  • left_list:左边文件夹中的文件与文件夹列表;
  • right_list:右边文件夹中的文件与文件夹列表;
  • common:两边文件夹中都存在的文件或文件夹;
  • left_only:只在左边文件夹中存在的文件或文件夹;
  • right_only:只在右边文件夹中存在的文件或文件夹;
  • common_dirs:两边文件夹都存在的子文件夹;
  • common_files:两边文件夹都存在的子文件;
  • common_funny:两边文件夹都存在的子文件夹;
  • same_files:匹配的文件;
  • diff_files:不匹配的文件;
  • funny_files:两边文件夹中都存在,但无法比较的文件;
  • subdirs:我没看明白这个属性的意思,python手册中的解释如下:A dictionary mapping names in common_dirs to dircmp objects

简单就是美!我只要文件比较的结果,不想去关心文件是如何是比较的,hey,就用python吧~~

分享到:
评论

相关推荐

    Python模块学习 filecmp 文件比较

    filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的...

    通过Python模块filecmp 对文件比较的实现方法

    利用`filecmp`模块可以实现文件内容的比较、文件夹中文件匹配情况的分析,以及文件夹内部结构的递归比较。 首先,我们来看如何使用`filecmp`模块比较两个文件是否内容相同。这可以通过`cmp`函数实现。`cmp`函数接受...

    python办公自动化源码集锦-光速对比文件

    2. 使用filecmp模块:该模块提供了两个函数,filecmp.cmp()用于比较两个文件是否内容相同,filecmp.dircmp()用于比较两个目录及其内容。 3. 自定义比较方法:通过逐行读取文件内容并进行字符串比较,或者使用哈希...

    python模块详解

    python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....

    python办公自动化源码集锦-自动清理重复文件

    可以使用filecmp模块的filecmp.cmp()函数,或者直接读取文件内容进行比较。 4. 处理策略:找到重复文件后,可以设定保留一个原文件,删除其余的。也可以根据文件的修改时间、创建时间等因素决定保留哪个。 三、...

    python基础系列教程-Python3.x标准模块库目录.docx

    20. **filecmp**:用于比较文件和目录,检测它们是否相同。 21. **tempfile**:生成临时文件和目录,自动清理。 22. **pickle**:序列化和反序列化Python对象,用于持久化存储。 23. **shutil**:提供高级文件和...

    Python自动化运维实战案例源码(20个案例)下载实战演练Python包使用教程指南模块操作技术与最佳实践书示例及案例源码

    包括:difflib 比对两个文件的区别用html高亮展示类似于git,dns操作python,fabric高效的ssh远程服务库,filecmp文件内容比对,func模块示例 python自定义模块,hadoop Python大数据分析示例,OMAudit 安全审计功能...

    python filecmp.dircmp实现递归比对两个目录的方法

    在Python中,`filecmp.dircmp` 是一个强大的工具,用于比较两个目录的内容。这个模块提供了 `dircmp` 类,可以递归地对比两个目录及其子目录,找出它们之间的差异。下面我们将详细探讨如何使用 `filecmp.dircmp` 来...

    filecmp-开源

    Python的标准库中有一个名为`difflib`的模块,它提供了与filecmp类似的功能,可以方便地在Python代码中进行文件比较。这对于自动化任务尤其有价值,可以将比较结果集成到更复杂的流程中。 在filecmp-0.1这个版本中...

    get_same_file_python_相同文件_

    Python的`filecmp`模块提供了文件和目录的比较功能。`filecmp.cmp()`函数可以比较两个文件是否内容相同。它接受两个文件路径作为参数,并返回一个布尔值,表示文件内容是否一致。 下面是一个简单的示例,展示如何...

    Python3.6.5标准库文档(完整中文版带目录版)2089页

    ### Python3.6.5标准库文档概览 #### 标准库的作用及构成 Python标准库是一个极其丰富且强大的工具集,它包含了...通过学习和理解这些模块和功能,开发者能够更加高效地利用Python来解决问题,构建高质量的应用程序。

    20个常用Python运维库和模块

    能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理。 2、IPy...5、filecmp:系统自带,可以实现文件,目录,遍历子目录的差异,对比

    Python内置模块及说明

    68. **distutils**: 用于构建和安装Python模块。 69. **venv**: 创建虚拟环境,隔离不同项目依赖。 70. **sys**: 提供系统相关的参数和函数,如加载模块、退出程序等。 71. **gc**: 垃圾回收器接口,管理内存清理...

    The Python 3 Standard Library by Example-new

    3. **文件和I/O操作**:io模块提供了统一的I/O接口,fileinput和filecmp用于文件输入和比较,shutil则提供了高级文件操作,如复制、移动和解压。 4. **数据结构**:collections模块包含了一些高级数据结构,如...

    python官方2.4.4.ia64版本msi安装包

    3. **标准库**:提供大量预装模块,如os、sys、math、time、filecmp等,用于文件操作、网络通信、数学计算等任务。 4. **异常处理**:提供了异常类和异常处理机制,使得程序可以优雅地处理错误和异常情况。 5. **...

    python实现自动清理重复文件

    这个过程涉及到几个关键的Python模块和技术,包括`os`、`glob`和`filecmp`。下面将详细讲解这些知识点。 首先,`os`模块是Python内建的与操作系统交互的模块,它提供了大量的函数来处理文件和目录。在本例中,`os....

    python删除文件夹里面所有重复的文件(大小,内容,文件名相同).rar

    为了比较文件内容,我们可以使用`filecmp.cmp()`函数,该函数会比较两个文件是否相同: ```python import filecmp def compare_files(file1, file2): return filecmp.cmp(file1, file2, shallow=False) ``` `...

Global site tag (gtag.js) - Google Analytics