Python 库记录

Author Avatar
Tr0y 8月 24, 2017 14:04:39 本文共 1.2k 字
  • 文为知己者书
  • 在其它设备中阅读本文章

一些标准库与第三方库记录

标准库

difflib

difflib: 文本差异

import difflib
print difflib.SequenceMatcher(None, '今天天气不错', '今天气很好').ratio() #输出: 0.666666666667

filecmp

filecmp: 文件对比

import filecmp
filecmp.cmp('undoc.rst', 'undoc.rst')

struct

>>> import struct
>>> struct.pack('I', 10240099)
'c@\x9c\x00'
>>> struct.pack('<I', 10240099)
'c@\x9c\x00'
>>> struct.pack('>I', 10240099)
'\x00\x9c@c'
>>> struct.pack('I', 2**32-1)
'\xff\xff\xff\xff'
>>> struct.unpack('I', _)
(4294967295L,)
#< 小端序
#> 大端序
#I 无符号整型

第三方库

colorama

colorama: cmd 彩色输出
pip install colorama

from colorama import Fore, Back, Style
print(Fore.RED + 'some red text')
print(Back.GREEN + 'and with a green background')
print(Style.DIM + 'and in dim text')
print(Style.RESET_ALL)
print('back to normal now')

progressbar2

progressbar2: cmd 进度条
pip install progressbar2

import time
import progressbar

bar = progressbar.ProgressBar()
for i in bar(range(100)):
    time.sleep(0.02)

jieba

jieba: 中文分词
pip install jieba

import jieba

seg_list = jieba.cut("我来到北京清华大学")
print / ".join(seg_list) #输出: 我/ 来到/ 北京/ 清华大学

fake-useragent

fake-useragent: 更多 useragent!
pip install fake-useragent

from fake_useragent import UserAgent
ua = UserAgent()
print ua.random

pyfiglet

pyfiglet: 字符 Ascii
pip install pyfiglet

from pyfiglet import Figlet
f = Figlet(font='slant')
print f.renderText('text to render')
#输出:
   __            __     __                               __         
  / /____  _  __/ /_   / /_____     ________  ____  ____/ /__  _____
 / __/ _ \| |/_/ __/  / __/ __ \   / ___/ _ \/ __ \/ __  / _ \/ ___/
/ /_/  __/>  </ /_   / /_/ /_/ /  / /  /  __/ / / / /_/ /  __/ /    
\__/\___/_/|_|\__/   \__/\____/  /_/   \___/_/ /_/\__,_/\___/_/     

PrettyTable

PrettyTable: 表格格式化输出
pip install prettytable

from prettytable import PrettyTable
x = PrettyTable(["姓名", "性别", "年龄", "存款"])
x.add_row(["赵一","男", 20, 100000])
x.add_row(["钱二","男", 21, 500])
x.add_row(["孙三", "男", 22, 400.7])
x.add_row(["李四", "男", 23, 619.5])
x.add_row(["周五", "男", 24, 1214.8])
x.add_row(["吴六", "女", 25, 646.9])
x.add_row(["郑七", "女", 26, 869.4])
x.add_row(["王七加一", "男", 21, 869.4])

print(x)

'''
结果
+----------+------+------+--------+
|   姓名   | 性别 | 年龄 |  存款  |
+----------+------+------+--------+
|   赵一   |  男  |  20  | 100000 |
|   钱二   |  男  |  21  |  500   |
|   孙三   |  男  |  22  | 400.7  |
|   李四   |  男  |  23  | 619.5  |
|   周五   |  男  |  24  | 1214.8 |
|   吴六   |  女  |  25  | 646.9  |
|   郑七   |  女  |  26  | 869.4  |
| 王七加一 |  男  |  21  | 869.4  |
+----------+------+------+--------+
'''

psutil

psutil: 系统性能信息
pip install psutil

tenacity

无比简单的 Exception Retry
出现错误的时候自动重试。还有延时以及其他功能,高持续爬虫必备。
pip install tenacity

gmpy2

密码学相关,用过都说好。传送门🚪

ngender

根据中文名字猜测性别。传送门🚪

In [1]: import ngender

In [2]: ngender.guess('宋潇')
Out[2]: ('female', 0.5270351910587524)

In [3]: ngender.guess('林愈静') # 其实他是男的,哈哈
Out[3]: ('female', 0.7403386956816094)

synonyms

获取近义词,中文的效果比较好,英文就算了。传送门🚪
synonyms 可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。

>>> synonyms.display('唱')
'唱'近义词:
  1. 唱:1.0
  2. 演唱:0.7798535
  3. 合唱:0.74875516
  4. 唱歌:0.73426175
  5. 唱出:0.7305354
  6. 会唱:0.6931748
  7. 独唱:0.6847898
  8. 对唱:0.6706482
  9. 歌:0.6597439
  10. 伴奏:0.6514814
>>> synonyms.display('跳')
'跳'近义词:
  1. 跳:1.0
  2. 跳跃:0.71174157
  3. 跳起:0.6937497
  4. 甩:0.6778911
  5. 踩:0.6361235
  6. 翻滚:0.63477707
  7. 起跳:0.6323423
  8. 跳到:0.6322503
  9. 跳出:0.6208772
  10. 翻:0.5786449
>>> synonyms.display('rap')
'rap'近义词:
  1. rap:1.0
  2. Rap:0.68070287
  3. 饶舌:0.61240023
  4. 抒情歌:0.50114965
  5. Pop:0.4892355
  6. 冷笑话:0.43908414
  7. 混搭:0.42578876
  8. Try:0.38343385
  9. </s>:0.18291898
  10. Pardosa:0.072175615
>>> synonyms.display('篮球')
'篮球'近义词:
  1. 篮球:1.0
  2. 排球:0.7600746
  3. 美式足球:0.74696124
  4. 棒球:0.7270616
  5. 田径:0.7249465
  6. 橄榄球:0.711521
  7. 曲棍球:0.6887209
  8. 篮球员:0.68223953
  9. 打球:0.6769222
  10. 篮球比赛:0.65966946
>>> synonyms.display('律师')
'律师'近义词:
  1. 律师:1.0
  2. 辩护律师:0.755538
  3. 法官:0.7460084
  4. 会计师:0.7136092
  5. 检察官:0.6903115
  6. 大律师:0.6764993
  7. 法律顾问:0.66502166
  8. 律师事务所:0.65426826
  9. 代理人:0.6481638
  10. 作证:0.6134831
>>> synonyms.display('函')
'函'近义词:
  1. 函:1.0
  2. 公文:0.5337878
  3. 下述:0.50887656
  4. 等价:0.5005928
  5. 实例:0.4872502
  6. 虚:0.4857229
  7. 恒等:0.46181267
  8. 逆:0.44781372
  9. 可执行:0.4390271
  10. 由此可知:0.38569006
>>>

mypy

mypy 是用于检查注解的,传送门🚪

py 3.5+ 出现了函数注解,用于标注函数的参数类型以及返回值类型:

在 sublime 中可以搭配插件使用:传送门🚪

自动检查有注解的函数,调用时是否符合函数的注解规定:

美滋滋~

End

What do you think?

本文标题: Python 库记录
原始链接: http://www.tr0y.wang/2017/08/24/pyPackages/
发布时间: 2017.08.24-14:04
最后更新: 2019.06.02-11:25
版权声明: 本站文章均采用CC BY-NC-SA 4.0协议进行许可。转载请注明出处!