怎么样给python进行性

Python025

怎么样给python进行性,第1张

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

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

python 怎样进行文件对比

2

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

我是文件hello

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

python 怎样进行文件对比

3

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

我是文件world

python 怎样进行文件对比

4

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

需要导入包

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详细的对比了,写法如下:

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 怎样进行文件对比

加密有很多种加密方式,常用的加密是md5加密,给你写个例子

import hashlib  

  

def md5(str):  

    m = hashlib.md5()  

    m.update(str.encode("utf8"))  

    print(m.hexdigest())  

    return m.hexdigest()  

  

def md5GBK(str1):  

    m = hashlib.md5(str1.encode(encoding='gb2312'))  

    print(m.hexdigest())  

    return m.hexdigest()  

  

md5('hello')  

md5GBK('你好')

哈希(Hash)算法:`hash(object)`

哈希算法将一个不定长的输入,通过散列函数变换成一个定长的输出,即散列值。是一种信息摘要算法。对象的hash值比原对象拥有更低的内存复杂度。

它不同于加密。哈希(hash)是将目标文本转换成具有相同长度的,不可逆的杂凑字符串,而加密则是将文本转换为具有相同长度的,可逆的密文。

哈希(hash)算法是不可逆的,只能由输入产生输出,不能由输出产生输入。而加密则是可逆的。即可以从输入产生输出,也可以反过来从输出推出输入。

对于hash算法,不同的数据应该生成不同的哈希值。如果两个不同的数据经过Hash函数计算得到的Hash值一样。就称为哈希碰撞(collision)。哈希碰撞无法被完全避免。只能降低发生概率。

好的hash函数会导致最少的hash碰撞。

*

可哈希性(hashable):

可哈希的数据类型为不可变的数据结构(如字符串srt,元组tuple,对象集objects等)。这种数据被称为可哈希性。

不可哈希性:

不可哈希的数据类型,为可变的数据结构(如字典dict,列表list和集合set等)。

如果对可变的对象进行哈希处理,则每次对象更新时,都需要更新哈希表。这样我们则需要将对象移至不同的数据集,这种操作会使花费过大。

因此设定不能对可变的对象进行hash处理。

**

**

Python3.x添加了hash算法的随机性,以提高安全性,因此对于每个新的python调用,同样的数据源生成的结果都将不同。

哈希方法有(MD5, SHA1, SHA256与SHA512等)。常用的有SH256与SHA512。MD5与SHA1不再常用。

- MDH5 (不常用)

- SHA1 (不常用)

- SHA256 (常用)

- SHA512 (常用)

一种局部敏感的hash算法,它产生的签名在一定程度上可以表征原内容的相似度。

>可以被用来比较文本的相似度。

安装simhash:

Pip3 install simhash

感知哈希算法(perceptual Hash Algorithm)。用于检测图像和视频的差异。

安装Imagehash:

pip3 install Imagehash

比较下面两张图片的Imagehash值

可以看到两张图片的hash值非常相似。相似的图片可以生成相似的哈希值是Imagehash的特点。