一图看懂 filecmp 模块:文件及目录的比较, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

一图看懂 filecmp 模块:文件及目录的比较, 资料整理+笔记(大全)

  • 摘要
  • 模块图
  • 类的关系
  • 模块全展开
    • 【filecmp】
    • 统计
    • 常量
      • int
      • list
      • dict
    • 模块
      • 4 os
      • 5 stat
    • 函数
      • 6 clear_cache()
      • 7 cmp(f1, f2, shallow=True)
      • 8 _sig(st)
      • 9 _do_cmp(f1, f2)
      • 10 cmpfiles(a, b, common, shallow=True)
      • 11 _cmp(a, b, sh, abs=, cmp=)
      • 12 _filter(flist, skip)
      • 13 demo()
      • 14 itertools.filterfalse
      • 15 filecmp.dircmp
        • data
        • method
        • 2 phase0(self)
        • 3 phase1(self)
        • 4 phase2(self)
        • 5 phase3(self)
        • 6 phase4(self)
        • 7 phase4_closure(self)
        • 8 report(self)
        • 9 report_full_closure(self)
        • 10 report_partial_closure(self)
  • 私有或局部
    • 【os】
      • 71 OSError
  • 私有或局部
  • 附录

摘要

全文介绍系统内置 filecmp 模块、函数、类及类的方法和属性。
它通过代码抓取并经AI智能翻译和人工校对。
是一部不可多得的权威字典类工具书。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】

模块图

无。(单一模块,过于简单。)

类的关系

也很简单。不过,保持一惯性,还是贴图吧。

一图看懂 filecmp 模块:文件及目录的比较, 资料整理+笔记(大全)_第1张图片

◆object
	filecmp.dircmp

模块全展开

【filecmp】

filecmp, fullname=filecmp, file=filecmp.py

比较文件和目录的实用程序。
类:
    dircmp
函数:
    cmp(f1, f2, shallow=True) -> int
    cmpfiles(a, b, common) -> ([], [], [])
    clear_cache()

统计

序号 类别 数量
1 int 1
4 str 5
6 list 2
8 dict 2
9 module 2
10 class 2
11 function 8
13 residual 2
14 system 9
15 private 5
16 all 24

常量

int

1 BUFSIZE 8192

list

2 DEFAULT_IGNORES [‘RCS’, ‘CVS’, ‘tags’, ‘.git’, ‘.hg’, ‘.bzr’, ‘_darcs’, ‘pycache’]

dict

3 _cache {}

模块

4 os

os, fullname=os, file=os.py

5 stat

stat, fullname=stat, file=stat.py

函数

6 clear_cache()

clear_cache(), module=filecmp, line:25 at filecmp.py

清除filecmp缓存。

7 cmp(f1, f2, shallow=True)

cmp(f1, f2, shallow=True), module=filecmp, line:29 at filecmp.py

比较两个文件。
参数:
    f1 -第一个文件名
    f2 -第二个文件名
    shallow -只是检查统计签名(不读取文件)。默认为True。
    返回值:如果文件相同则为True,否则为False。
    这个函数对过去的比较和结果使用缓存,如果缓存项的统计信息发生变化,缓存项将失效。缓存可以通过调用clear cache()来清除。

8 _sig(st)

_sig(st), module=filecmp, line:68 at filecmp.py

9 _do_cmp(f1, f2)

_do_cmp(f1, f2), module=filecmp, line:73 at filecmp.py

10 cmpfiles(a, b, common, shallow=True)

cmpfiles(a, b, common, shallow=True), module=filecmp, line:250 at filecmp.py

比较两个目录中的常见文件。
    a, b -目录名称
    common -在两个目录中找到的文件名列表
    shallow -如果为真,仅基于stat()信息进行比较
    返回三个列表的元组:
        比较相同的文件,
        不同的文件名
        不是常规文件。

11 _cmp(a, b, sh, abs=, cmp=)

_cmp(a, b, sh, abs=, cmp=), module=filecmp, line:277 at filecmp.py

12 _filter(flist, skip)

_filter(flist, skip), module=filecmp, line:286 at filecmp.py

13 demo()

demo(), module=filecmp, line:292 at filecmp.py

14 itertools.filterfalse

filterfalse, itertools.filterfalse, module=itertools, line:0 at

filterfalse(function or None, sequence) --> filterfalse object
返回序列中function(item)为false的那些项。如果function为None,则返回为false的项。

15 filecmp.dircmp

dircmp, filecmp.dircmp, module=filecmp, line:0 at

一个管理2个目录比较的类。
    dircmp(a, b, ignore=None, hide=None)
      A 、 B 目录
      IGNORE 要忽略的列表,缺省为 DEFAULT_IGNORES.
      HIDE 要隐藏的列表,缺省为[os.curdir, os.pardir]
    高级用法:
      x = dircmp(dir1, dir2)
      x.report() -> 打印 dir1 和 dir2 之间不同处的报告,或者
      x.report_partial_closure() -> 打印 dir1 和 dir2 之间不同处的报告、及公共直接子目录。
      x.report_full_closure() -> 与上同,递归处理所有子目录.
    属性:
     left_list, right_list: 左列表,右列表:dir1和dir2中的文件,通过hide和ignore过滤。
     common: dir1和dir2中均存在的名称列表。
     left_only, right_only: 仅限dir1, dir2中的名称。
     common_dirs: dir1和dir2都存在的子目录。
     common_files:  dir1和dir2都存在的文件。
     common_funny: 名称在 dir1 和 dir2 都存在,但类型不同,或者名称不可统计。
     same_files:相同文件的列表。
     diff_files: 不同的文件名列表。
     funny_files: 无法比较的文件列表。
     subdirs: dircmp对象的字典,以common_dirs中的名称为键。

data

1 methodmap={‘subdirs’: , ‘same_files’:

method

2 phase0(self)

kind=method class=dircmp objtype=function line:132 at …\filecmp.py

3 phase1(self)

kind=method class=dircmp objtype=function line:140 at …\filecmp.py

4 phase2(self)

kind=method class=dircmp objtype=function line:147 at …\filecmp.py

5 phase3(self)

kind=method class=dircmp objtype=function line:182 at …\filecmp.py

6 phase4(self)

kind=method class=dircmp objtype=function line:186 at …\filecmp.py

7 phase4_closure(self)

kind=method class=dircmp objtype=function line:196 at …\filecmp.py

8 report(self)

kind=method class=dircmp objtype=function line:201 at …\filecmp.py

9 report_full_closure(self)

kind=method class=dircmp objtype=function line:232 at …\filecmp.py

10 report_partial_closure(self)

kind=method class=dircmp objtype=function line:226 at …\filecmp.py

私有或局部

16 _cache {}
17 _sig
18 _do_cmp
19 _cmp
20 _filter

【os】

os, fullname=os, file=os.py

71 OSError

OSError, OSError, module=builtins, line:0 at

私有或局部

83 _filemode_table (((40960, ‘l’), (32768, ‘-’), (24576, ‘b’), (16384, ‘d’), (8192, ‘c’), (4096, ‘p’)), ((256, ‘r’),), ((128, ‘w’),), ((211…

附录

系统自带的 测试函数。一并附在这里吧。

def demo():
    import sys
    import getopt
    options, args = getopt.getopt(sys.argv[1:], 'r')
    if len(args) != 2:
        raise getopt.GetoptError('need exactly two args', None)
    dd = dircmp(args[0], args[1])
    if ('-r', '') in options:
        dd.report_full_closure()
    else:
        dd.report()

你可能感兴趣的:(菜鸟学python,python,开发语言)