今天带来的是python里一些小众但是却比较实用的python库,一起来看看吧!
pprint:更清晰的打印
pprint
是 pretty printer 的缩写,用来打印 Python 数据结构,与 print
相比,它打印出来的结构更加整齐,便于阅读。
先来看看print
再来看看pprint,是不是打印出来更加方便阅读
shutil :高级文件操作
shutil
是 Python
中的高级文件操作模块
首先导入相关库
然后创建一个test.file用于示例,执行完毕工作目录下就会多一个文件test.file
复制文件
现在使用shutil.copy(src, dst)。 将源文件复制到目标地址:
复制文件夹
使用os将文件转移到 test_dir
文件夹:
使用 shutil.copytree
来复制文件夹:
删除非空文件夹
使用 shutil.rmtree
来删除非空文件夹:
移动文件夹
shutil.move
可以整体移动文件夹,与 os.rename
功能差不多。
压缩文件
先看看支持的压缩文件格式:
shutil.make_archive(basename, format, root_dir)可以用来压缩文件
logging :记录日志
打印日志还在用print()吗?logging
模块可以用来记录日志
logging
的日志类型有以下几种:
logging.critical(msg)
logging.error(msg)
logging.warning(msg)
logging.info(msg)
logging.debug(msg)
级别排序为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
默认情况下,logging
的日志级别为 WARNING
,只有不低于 WARNING
级别的日志才会显示在命令行。
也可以这样修改默认的日志级别:
也可以通过 logging.basicConfig()
函数来改变默认的日志显示方式:
glob :文件模式匹配
glob
模块提供了方便的文件模式匹配方法。
例如,找到所有以 .txt
结尾的文件名:
或者是匹配数字开头的文件夹名:
collections :更多数据结构
计数器
可以使用 Counter(seq)
对序列中出现的元素个数进行统计。例如,我们可以统计一段文本中出现的单词及其出现的次数:
双端队列
双端队列支持从队头队尾出入队,与列表相比,双端队列在队头的操作更快:
带默认值的字典
对于 Python
自带的词典 d
,当 key
不存在的时候,调用 d[key]
会报错,但是 defaultdict
可以为这样的 key
提供一个指定的默认值,我们只需要在定义时提供默认值的类型即可,如果 key
不存在返回指定类型的默认值:
hashlib :字符加密
hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法
比如,我们来试试将早起python进行加密
以上加密算法虽然依然非常厉害,但有时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
“
以上就是本文所介绍的几个python中比较有用的内置库,当然远不止这么多,剩下的我们就留到以后再介绍吧!
”
THE END