非常教程

Python参考手册

文件和目录访问 | File & Directory Access

filecmp

源代码: Lib / filecmp.py

filecmp模块定义了比较文件和目录的功能,以及各种可选的时间/正确性折衷。为了比较文件,请参阅difflib模块。

filecmp模块定义了以下功能:

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

比较名为f1f2的文件,True如果看起来相同False则返回,否则返回。

除非给出的并且是假的,否则具有相同os.stat()签名的文件被认为是相等的。

使用此函数比较的文件将不会再次进行比较,除非其os.stat()签名发生更改。

请注意,此功能不会调用外部程序,因此具有可移植性和效率。

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

比较两个目录中的文件dir1dir2,它们的名称由common指定

返回三个文件名列表:匹配不匹配错误匹配包含匹配的文件列表,不匹配包含那些不匹配的文件的名称,错误列出无法比较的文件的名称。如果文件不存在于其中一个目录中,则文件被列为错误,用户缺乏读取权限或者由于某些其他原因无法完成比较。

参数具有相同的含义和默认值作为filecmp.cmp()

例如,cmpfiles('a', 'b', ['c', 'd/e'])将比较a/cb/ca/d/eb/d/e'c'并且'd/e'将分别位于三个返回的列表之一中。

例:

>>> import filecmp
>>> filecmp.cmp('undoc.rst', 'undoc.rst') 
True
>>> filecmp.cmp('undoc.rst', 'index.rst') 
False

1. dircmp类

dircmp 实例是使用这个构造函数构建的:

class filecmp.dircmp(a, b[, ignore[, hide]])

构造一个新的目录比较对象,比较目录ab忽略是要忽略的名称列表,并且默认为['RCS', 'CVS', 'tags']hide是要隐藏的名称列表,默认为[os.curdir, os.pardir]

如上所述,dircmp该类通过进行浅层比较来比较文件filecmp.cmp()

dircmp类提供了以下方法:

report()

打印(对sys.stdoutab之间比较。

report_partial_closure()

打印之间的比较b,共同立即子目录。

report_full_closure()

打印之间的比较一个b和公共子目录(递归的)。

dircmp类提供了许多可用于对被比较的目录树得到的各种信息片段有趣的属性。

请注意,通过__getattr__()钩子,所有属性都会被延迟计算,因此如果仅使用那些轻量级计算的属性,则不会有速度损失。

left

目录a

right

目录b

left_list

文件和子目录,通过过滤隐藏忽略

right_list

b中的文件和子目录,通过隐藏忽略进行过滤。

common

ab中的文件和子目录。

left_only

文件和子目录只在a中

right_only

文件和子目录仅在b

common_dirs

ab中的子目录。

common_files

ab中的文件

common_funny

ab中的名称,使得目录中的类型不同,或者os.stat()报告错误的名称不同。

same_files

使用类的文件比较运算符,在ab中都是相同的文件。

diff_files

ab中的文件,其内容根据类的文件比较操作符而不同。

funny_files

文件在ab中,但无法比较。

subdirs

将名称映射common_dirsdircmp对象的字典。

以下是使用subdirs属性通过两个目录递归搜索以显示公共不同文件的简单示例:

>>> from filecmp import dircmp
>>> def print_diff_files(dcmp):
...     for name in dcmp.diff_files:
...         print "diff_file %s found in %s and %s" % (name, dcmp.left,
...               dcmp.right)
...     for sub_dcmp in dcmp.subdirs.values():
...         print_diff_files(sub_dcmp)
...
>>> dcmp = dircmp('dir1', 'dir2') 
>>> print_diff_files(dcmp) 
Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法