Python学习 Python,这 22 个包怎能不掌握?( 四 )


你一定度过 readthedocs.org 上的文档吧?那里的文档都是使用 Sphinx 和 docutils 创建的 。
13. Chardet
5.01亿下载
你可以使用 chardet 模块来检查文件或数据流的字符集 。 在分析大量随机的文本时这个功能非常有用 。 但也可以用来判断远程下载的数据的字符串 。
在安装 chardet 后 , 就可以使用命令行工具 chardetect , 使用方法如下:
chardetect somefile.txtsomefile.txt: ascii with confidence 1.0 也可以在程序中使用该库 , 参见文档(https://chardet.readthedocs.io/en/latest/usage.html) 。
Requests 和许多其他包都依赖于 chardet 。 我估计不会有太多人直接使用 chardet , 所以它的流行度肯定是来自于这些依赖 。
14. RSA
4.92亿次下载
Rsa是 RSA 的纯 Python 实现 。 它支持如下功能:

  • 加密和解密
  • 签名和签名验证
  • 根据 PKCS#1 version 1.5生成秘钥
它可以作为 Python 库使用 , 也可以在命令行上使用 。
  • RSA 名称中的三个字母来自于三个人的姓:Ron Rivest , Adi Shamir , 和Leonard Adleman 。 他们于1977年发明了该算法 。
  • RSA 是最早出现的一批公钥加密系统 , 广泛用于安全数据传输 。 这种加密系统包括两个秘钥:一个是公钥 , 一个是私钥 。 使用公钥加密数据 , 然后该数据只能用私钥进行解密 。
  • RSA 算法很慢 。 通常并不使用 RSA 算法直接加密用户数据 , 而是用它来加密对称加密系统中使用的共享秘钥 , 因为对称加密系统速度很快 , 适合用来加密大量数据 。
下面 代码演示了 RSA 的使用方法:
import rsa# Bob creates a key pair:(bob_pub, bob_priv) = rsa.newkeys(512)# Alice ecnrypts a message for Bob# with his public keycrypto = rsa.encrypt('hello Bob!', bob_pub)# When Bob gets the message, he# decrypts it with his private key:message = rsa.decrypt(crypto, bob_priv)print(message.decode('utf8'))# hello Bob! 假设 Bob 拥有私钥 private , Alice 就能确信只有 Bob 才能阅读该信息 。
但 Bob 并不能确信 Alice 是信息的发送者 , 因为任何人都可以获得 Bob 的公钥 。 为了证明发送者的确是 Alice , 她可以使用自己的私钥对信息进行签名 。 Bob 可以使用 Alice 的公钥对签名进行验证 , 来确保发送者的确是 Alice 。
许多其他包都依赖于 rsa , 如 google-auth(第37名) , oauthlib(第54名) , awscli(第17名) 。 这个包并不会经常被直接使用 , 因为有许多更快、更原生的方法 。
15. Jmespath
4.73亿次下载
在 Python 中使用 JSON 很容易 , 因为 JSON 可以完美地映射到 Python 的字典上 。 我认为这是最好的特性之一 。
说实话我从来没听说过 jmepath 这个包 , 尽管我使用过很多 JSON 。 我会使用 json.loads 然后手动从字典中读取数据 , 或许还得写几个循环 。
JMESPath , 读作“James path” , 能更容易地在 Python 中使用 JSON 。 你可以用声明的方式定义怎样从 JSON 文档中读取数据 。 下面是一些最基本的例子:
import jmespath# Get a specific elementd = {"foo": {"bar": "baz"}}print(jmespath.search('foo.bar', d))# baz# Using a wildcard to get all namesd = {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}print(jmespath.search('foo.bar[*].name', d))# [“one”, “two”] 这仅仅是它的冰山一角 。 更多用法参见它的文档和 PyPI 主页 。
16. Setuptools
4.01亿次下载


推荐阅读