脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python进行文件对比的方法

python进行文件对比的方法

2021-05-06 00:39wang_yubin92 Python

在本篇内容里小编给分享了关于python进行文件对比的方法和步骤,需要的朋友们可以学习下。

文件对比是否一致,我们一般采用md5值对比,假如一样,代表文件一致,不一样说明不一致

假如想要详细的对比信息内容,difflib库提供了文件对比的详细信息和结果

1、首先我们查看下md5值的使用方法

我们先建立几个示例文件方便我们参考,文件file1,file1_copy,file2

python进行文件对比的方法

2、file1的内容和file1_copy的内容一致,都为

我是文件hello

为了测试我们的文件一致性

python进行文件对比的方法

3、file2的内容和file1的文件有所区别,内容为:

我是文件world

python进行文件对比的方法

4、接下来就是获取md5的方法,我可以了个公共方法,大家直接调用就好

需要导入包

python" id="highlighter_497888">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import os
 
import hashlib
 
def get_file_md5(filename):
 
  if not os.path.isfile(filename):
 
    return
 
  md5 = hashlib.md5()
 
  f = file(filename,'rb')
 
  while true:
 
    b = f.read(8096)
 
    if not b:
 
      break
 
    md5.update(b)
 
  f.close()
 
  return md5.hexdigest()
 
然后我们打印下这几个文件的md5值
 
print 'file1   的md5:%s' % get_file_md5('file1.txt')
 
print 'file1_copy的md5:%s' % get_file_md5('file1_copy.txt')
 
print 'file2   的md5:%s' % get_file_md5('file2.txt')

 

python进行文件对比的方法

5、运行python结果可以看到,file1和file1_copy文件的md5值是一样的,说明这两个文件是一样的,file2和他们不一样

python进行文件对比的方法

6、接下来就是使用difflib详细的对比了,写法如下:

?
1
2
3
4
5
6
7
8
9
10
11
import difflib
 
import sys
 
file1 = open('file1.txt', 'u').readlines()
 
file2 = open('file2.txt', 'u').readlines()
 
diff = difflib.ndiff(file1, file2)
 
sys.stdout.writelines(diff)

 

python进行文件对比的方法

7、运行python结果可以看到,具体两个文件的区别

  我是文件

- hello+ world

python进行文件对比的方法

总结:以上就是本次关于python怎样进行文件对比的操作方法,感谢大家的阅读和对服务器之家的支持。

原文链接:https://jingyan.baidu.com/article/15622f2423c843fdfcbea590.html

延伸 · 阅读

精彩推荐