你不一定知道的、并没有什么卵用的一些python库
1. delorean,用来处理时间的库
import datetime import pytz # 一般情况下,我们想表示时间的话 est = pytz.timezone("Asia/Shanghai") t = datetime.datetime.now(est) print(t) # 2018-07-30 23:06:21.563803+08:00 # 使用delorean from delorean import Delorean d = Delorean() t = d.shift("Asia/Shanghai") print(t) # Delorean(datetime=datetime.datetime(2018, 7, 30, 23, 6, 21, 607802), timezone='Asia/Shanghai') print(t.next_day(1)) # Delorean(datetime=datetime.datetime(2018, 7, 31, 23, 7, 40, 48419), timezone='Asia/Shanghai') print(t.next_day(-1)) # Delorean(datetime=datetime.datetime(2018, 7, 29, 23, 8, 1, 593950), timezone='Asia/Shanghai') # 下一个星期天 print(t.next_sunday()) # Delorean(datetime=datetime.datetime(2018, 8, 5, 23, 8, 56, 391465), timezone='Asia/Shanghai') # 下一个星期五 print(t.next_friday()) # Delorean(datetime=datetime.datetime(2018, 8, 3, 23, 8, 56, 391465), timezone='Asia/Shanghai') from delorean import stops import delorean for stop in stops(freq=delorean.HOURLY, count=10): print(stop) ''' Delorean(datetime=datetime.datetime(2018, 7, 30, 15, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 16, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 17, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 18, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 19, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 20, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 21, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 22, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 30, 23, 11, 17), timezone='UTC') Delorean(datetime=datetime.datetime(2018, 7, 31, 0, 11, 17), timezone='UTC') '''
2.prettybody
from prettytable import PrettyTable p = PrettyTable() p.field_names = ["name", "age", "gender", "husband"] p.add_row(["satori", 18, "f", "zgg"]) p.add_row(["mashiro", 18, "f", "zgg"]) p.add_row(["miku", 18, "f", "zgg"]) p.add_row(["matsuri", 18, "f", "zgg"]) print(p) ''' +---------+-----+--------+---------+ | name | age | gender | husband | +---------+-----+--------+---------+ | satori | 18 | f | zgg | | mashiro | 18 | f | zgg | | miku | 18 | f | zgg | | matsuri | 18 | f | zgg | +---------+-----+--------+---------+ ''' # 添加一列 p.add_column("anime", ["东方地灵殿", "樱花庄的宠物女孩", "初音未来", "sola"]) print(p) ''' +---------+-----+--------+---------+------------------+ | name | age | gender | husband | anime | +---------+-----+--------+---------+------------------+ | satori | 18 | f | zgg | 东方地灵殿 | | mashiro | 18 | f | zgg | 樱花庄的宠物女孩 | | miku | 18 | f | zgg | 初音未来 | | matsuri | 18 | f | zgg | sola | +---------+-----+--------+---------+------------------+ ''' # 获取表格 print(p.get_html_string()) ''' <table> <tr> <th>name</th> <th>age</th> <th>gender</th> <th>husband</th> <th>anime</th> </tr> <tr> <td>satori</td> <td>18</td> <td>f</td> <td>zgg</td> <td>东方地灵殿</td> </tr> <tr> <td>mashiro</td> <td>18</td> <td>f</td> <td>zgg</td> <td>樱花庄的宠物女孩</td> </tr> <tr> <td>miku</td> <td>18</td> <td>f</td> <td>zgg</td> <td>初音未来</td> </tr> <tr> <td>matsuri</td> <td>18</td> <td>f</td> <td>zgg</td> <td>sola</td> </tr> </table> ''' print(p.get_string()) ''' +---------+-----+--------+---------+------------------+ | name | age | gender | husband | anime | +---------+-----+--------+---------+------------------+ | satori | 18 | f | zgg | 东方地灵殿 | | mashiro | 18 | f | zgg | 樱花庄的宠物女孩 | | miku | 18 | f | zgg | 初音未来 | | matsuri | 18 | f | zgg | sola | +---------+-----+--------+---------+------------------+ ''' # 获取指定的列,指定的行 print(p.get_string(fields=["name", "anime"], start=0, end=4)) ''' +---------+------------------+ | name | anime | +---------+------------------+ | satori | 东方地灵殿 | | mashiro | 樱花庄的宠物女孩 | | miku | 初音未来 | | matsuri | sola | +---------+------------------+ '''
3.snowballstemmer
# 用来提取单词词干,支持15种语言 from snowballstemmer import EnglishStemmer print(EnglishStemmer().stemWord("love")) print(EnglishStemmer().stemWord("production")) print(EnglishStemmer().stemWord("affection")) print(EnglishStemmer().stemWord("gravity")) ''' love product affect graviti '''
4.wget,比较有用的库,可以用来下载图片
import wget url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1532975831713&di=6add9fa41ac1a7ddbddcaa919d49c497&imgtype=0&src=http%3A%2F%2Fimage.uczzd.cn%2F6715434799472055716.jpeg%3Fid%3D0" # 参数一:url,下载的地址,参数二:out,输出的文件名或路径 wget.download(url=url, out=r"C:\Users\Administrator\Desktop\aaa\matsuri.jpg")
当然输入一个普通的url,会将整个页面的html文本下载下来
5.fuzzywuzzy,用来做字符串的相似度
from fuzzywuzzy import fuzz from fuzzywuzzy import process print(fuzz.ratio("my name is satori", "my name is mashiro")) # 74,表示相似度是百分之74 print(fuzz.ratio("i love satori", "I love satori")) # 92,可见是区分大小写的 print(fuzz.ratio("i love satori", "I love satori!")) # 89 print(fuzz.partial_ratio("i love satori", "i love satori!!!!!")) # 100 # 两者对位置都敏感,但是ratio是属于全匹配。partial_ratio是搜索匹配,知道一方结束,后面的即使有也不会造成影响 print(fuzz.ratio("我永远喜欢古明地盆", "我永远喜欢古明地盆,多睡觉少操心")) # 72 print(fuzz.partial_ratio("我永远喜欢古明地盆", "我永远喜欢古明地盆,多睡觉少操心")) # 100
你不一定知道的、并没有什么卵用的一些python库的更多相关文章
- 程序员必须要知道的Hadoop的一些事实
程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...
- 【转载】在IT界取得成功应该知道的10件事
在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...
- 理工科应该的知道的C/C++数学计算库(转)
理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...
- 你应该知道的10个奇特的 HTML5 单页网站
网页设计师努力寻找新的方式来展现内容.其中一个大的趋势是单页网站,现在被世界上的一些大的品牌广泛采用,使用它们来为用户提供一个快速,干净和简单的而且美丽的网站. 下面是10个令人惊叹的单页 H ...
- Git / 程序员需要知道的12个Git高级命令
众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强 ...
- 你应该知道的RPC原理
你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互 ...
- 希望早几年知道的5个Unix命令
原文: http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 希望早几年知道的5个Unix命令 使用*nix系统已经有一段时间了.但是还是有 ...
- 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)
关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...
- 对于JavaScript的函数.NET开发人员应该知道的11件事
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...
- 每个极客都应该知道的Linux技巧
每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...
随机推荐
- rpm、yum命令
一.rpm命令 挂载光盘文件到/media目录: 进去/media目录下的Packages目录: 查看系统已安装的所有rpm包: 查看系统是否安装dhcp软件包: 安装dhcp软件包: 查看dhcp软 ...
- 使用.gitignore忽视项目中的文件/文件夹
在项目开发的过程中,我们经常需要IDE来提高编程效率.然而,不同的IDE会生成各种各样的临时文件.在项目生命周期中,我们往往不需要关注这类文件的变更记录,因而我们是不需要将它们加入到源代码管理器中. ...
- SpringMVC---四大注解
SpringMVC四大注解 Component 通用标注,在不清楚使用哪个注解的时候,可以使用Component通用注解 Controller 标注web请求控制器 Service 标注Service ...
- anr trace文件分析
测试给的trace文件好几万行,怎么看? 1.搜索 你的包名,看它报错误报在你代码的哪里 2.在你代码里面分析 还有,synchronized 就是用来防止多线程调用的,没有那么神奇.
- 《Cracking the Coding Interview》——第2章:链表——题目1
2014-03-18 02:16 题目:给定一个未排序的单链表,去除其中的重复元素. 解法1:不花额外空间,使用O(n^2)的比较方法来找出重复元素. 代码: // 2.1 Remove duplic ...
- 【APUE】Chapter9 Process Relationships
这一章看的比较混乱,可能是因为例子少:再有就是,这一章就是一个铺垫的章节. 9.2 terminal logins 啥叫termnial? 我感觉书上的terminal指的更可能是一些物理设备(key ...
- 六 APPIUM Android 定位方式
文本转自:http://www.cnblogs.com/sundalian/p/5629500.html APPIUM Android 定位方式 1.定位元素应用元素 1.1通过id定位元素 An ...
- Rbac_权限管理
click!!! https://github.com/ugfly1210/rbac_100 有关于 rbac 的所有代码,包括 README. 用户和角色 : 多对多字段放在哪张表更好点? 用户找角 ...
- 深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)【转】
原文链接:https://www.cnblogs.com/gdsblog/p/8465401.html 相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transi ...
- java实现最大堆
优先队列 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除.在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有最高级先出 (first in, ...