python logging打印终端_python中那些小众但有用的自带标准库

======

欢迎关注我的公众号:早起python

一起学python

=======

今天带来的是python里一些小众但是却比较实用的标准库,一起来看看吧!

pprint:更清晰的打印

pprint 是 pretty printer 的缩写,用来打印 Python 数据结构,与 print 相比,它打印出来的结构更加整齐,便于阅读。先来看看print

35919e4c0b71a6442c780e76c5699ee1.png

再来看看pprint,是不是打印出来更加方便阅读

da776ab0041e48ccd46b4d5b186dc337.png

shutil :高级文件操作

shutilPython 中的高级文件操作模块首先导入相关库

56e513a95cb0bc25b02f521764cd0b3a.png

然后创建一个test.file用于示例,执行完毕工作目录下就会多一个文件test.file

7ee8ea7ef612a449f00061f3857d9bc9.png

复制文件

现在使用shutil.copy(src, dst)。 将源文件复制到目标地址:

84bda18027937d325da437e6fa38bf6c.png

复制文件夹

使用os将文件转移到 test_dir 文件夹:

dadea19b9f33e4a76b5d0ddecb26dbe8.png

使用 shutil.copytree来复制文件夹:

55f7d57317d7975f6408fe6c5ff4480c.png

删除非空文件夹

使用shutil.rmtree 来删除非空文件夹:

381346c83f10fd6c38a296e0c9f4b3de.png

移动文件夹

shutil.move 可以整体移动文件夹,与 os.rename 功能差不多。

压缩文件

先看看支持的压缩文件格式:

736598fa3e5621432f566d0a55985c12.png

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 级别的日志才会显示在命令行。

4f192c297e67e00c041d903c15bb668e.png

也可以这样修改默认的日志级别:

42e2a66d82354bb152c87a7d2e271765.png

也可以通过logging.basicConfig()函数来改变默认的日志显示方式:

a82fd0f7963d3c387f81fc6016737c60.png

glob :文件模式匹配

glob 模块提供了方便的文件模式匹配方法。例如,找到所有以 .txt结尾的文件名:

39d9ac63cca17b269f29affce8944ead.png

或者是匹配数字开头的文件夹名:

966a15637440adf2e80f2865fb8b7dbc.png

collections :更多数据结构

计数器

可以使用 Counter(seq) 对序列中出现的元素个数进行统计。例如,我们可以统计一段文本中出现的单词及其出现的次数:

2a5bbf2740b8b8f7cd70a7c4866436ce.png

双端队列

双端队列支持从队头队尾出入队,与列表相比,双端队列在队头的操作更快:

ea39973559df819f706d1f3044ca5553.png

带默认值的字典

对于 Python 自带的词典 d,当 key 不存在的时候,调用 d[key] 会报错,但是 defaultdict 可以为这样的 key 提供一个指定的默认值,我们只需要在定义时提供默认值的类型即可,如果 key 不存在返回指定类型的默认值:

24cbf990aabaf06be56d4856af05f294.png

hashlib :字符加密

hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法

比如,我们来试试将早起python进行加密

85d342d402c57cfec905854b1f650cf0.png

以上加密算法虽然依然非常厉害,但有时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。

d25091ca0b3e5d5d0d9a5573673546e6.png

以上就是本文所介绍的几个python中比较有用的内置库,当然远不止这么多,剩下的我们就留到以后再介绍吧!

===========================

专栏其他精彩:

刘早起:数据工程师需要掌握的18个python库​zhuanlan.zhihu.com
刘早起:更高级的数据可视化,使用pyecharts制作精美图表​zhuanlan.zhihu.com
刘早起:python数据分析之清洗数据:缺失值处理​zhuanlan.zhihu.com
刘早起:python数据分析万字干货!一个数据集全方位解读pandas​zhuanlan.zhihu.com

我的/公/众/号:早起python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值