一些标准库与第三方库记录
标准库
difflib
difflib: 文本差异
1 2 import difflibprint difflib.SequenceMatcher(None , '今天天气不错' , '今天气很好' ).ratio()
filecmp
filecmp: 文件对比
1 2 import filecmp filecmp.cmp('undoc .rst', 'undoc .rst')
struct
1 2 3 4 5 6 7 8 9 10 11 12 13 14 >>> 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 ,)
第三方库
colorama
colorama: cmd 彩色输出
pip install colorama
1 2 3 4 5 6 from colorama import Fore, Back, Styleprint (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
1 2 3 4 5 6 import timeimport progressbar bar = progressbar.ProgressBar()for i in bar(range (100 )): time.sleep(0.02 )
jieba
jieba: 中文分词
pip install jieba
1 2 3 4 import jieba seg_list = jieba.cut("我来到北京清华大学" )print / ".join(seg_list) #输出: 我/ 来到/ 北京/ 清华大学
fake-useragent
fake-useragent: 更多 useragent!
pip install fake-useragent
1 2 3 from fake_useragent import UserAgent ua = UserAgent()print ua.random
pyfiglet
pyfiglet: 字符 Ascii
pip install pyfiglet
1 2 3 4 5 6 7 8 9 10 from pyfiglet import Figlet f = Figlet(font='slant' )print f.renderText('text to render' ) __ __ __ __ / /____ _ __/ /_ / /_____ ________ ____ ____/ /__ _____ / __/ _ \| |/_/ __/ / __/ __ \ / ___/ _ \/ __ \/ __ / _ \/ ___/ / /_/ __/> </ /_ / /_/ /_/ / / / / __/ / / / /_/ / __/ / \__/\___/_/|_|\__/ \__/\____/ /_/ \___/_/ /_/\__,_/\___/_/
PrettyTable
PrettyTable: 表格格式化输出
pip install prettytable
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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
根据中文名字猜测性别。传送门🚪
1 2 3 4 5 6 7 In [1] : import ngender In [2] : ngender .guess ('宋潇' )Out [2] : ('female' , 0.5270351910587524 )In [3] : ngender .guess ('林愈静' ) # 其实他是男的,哈哈Out [3] : ('female' , 0.7403386956816094 )
synonyms
获取近义词,中文的效果比较好,英文就算了。传送门🚪
synonyms 可以用于自然语言理解的很多任务:文本对齐,推荐算法,相似度计算,语义偏移,关键字提取,概念提取,自动摘要,搜索引擎等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 >>> 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 中可以搭配插件使用:传送门🚪
自动检查有注解的函数,调用时是否符合函数的注解规定:
美滋滋~
来呀快活呀