03.02 几个好玩又使用的Python模块~什么?你还不知道?

filecmp模块 文件与文件夹内容的比较

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

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

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

前者是用来比较两个文件的内容是否匹配。参数f1, f2指定要比较的文件的路径。可选参数shallow指定比较文件时是否需要考虑文件本身的属性。

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

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

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

  • report():只比较指定文件夹中的内容(文件与文件夹)

  • report_partial_closure():比较文件夹及第一级子文件夹的内容

  • report_full_closure():递归比较所有的文件夹的内容

这么说可能会比较概括,我们来看看实例

先创建两个文件夹“1”和“2”然后在“1”文件夹中放置一个1.txt,在“2”文件夹中放一个1.txt文件和2.txt文件其中两个文件夹中1.txt

几个好玩又使用的Python模块~什么?你还不知道?

当然了,如果两个文件夹下面的文件"1.txt"内容不相同那么结果就会是这样的:

几个好玩又使用的Python模块~什么?你还不知道?

dircmp不止能做这个他还有很多别的功能

几个好玩又使用的Python模块~什么?你还不知道?

hashlib模块 hash算法

Python里面的hashlib模块提供了很多加密的算法,这里介绍一下hashlib的简单使用事例,用hashlib的md5算法加密数据

几个好玩又使用的Python模块~什么?你还不知道?

这里介绍的是md5算法,md5不能反解,但是加密是固定的,就是关系是一一对应,所以有缺陷,可以被对撞出来;如果没有参数,md5就遵守一个规则,生成同一个对应关系,如果加了参数,就是在原先加密的基础上再加密一层,这样的话参数只有自己知道,防止被撞库,因为别人永远拿不到这个参数。

我们可以利用md5进行用户登陆网站进行注册之后密码加密。

几个好玩又使用的Python模块~什么?你还不知道?

threading模块(thread模块的改进版) 多线程方法

python中得thread的一些机制和C的不同:在C中,主线程结束后,其子线程会默认被主线程结束掉。而在python中不一样,主线程结束后,会默认等待子线程结束后,主线程才退出。python对于thread的管理中有两个函数:join和setDaemon

前者是,在一个线程B中调用threada.join(),则threada结束后,线程B才会接着threada.join()往后运行;后者是,主线程A启动了子线程B,调用b.setDaemaon(True),则主线程结束时,会把子线程B也杀死,与C中得默认效果是一样的


分享到:


相關文章: