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库的更多相关文章

  1. 程序员必须要知道的Hadoop的一些事实

    程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...

  2. 【转载】在IT界取得成功应该知道的10件事

     在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...

  3. 理工科应该的知道的C/C++数学计算库(转)

    理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...

  4. 你应该知道的10个奇特的 HTML5 单页网站

    网页设计师努力寻找新的方式来展现内容.其中一个大的趋势是单页网站,现在被世界上的一些大的品牌广泛采用,使用它们来为用户提供一个快速,干净和简单的而且​​美丽的网站. 下面是10个令人惊叹的单页 H​​ ...

  5. Git / 程序员需要知道的12个Git高级命令

    众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强 ...

  6. 你应该知道的RPC原理

    你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互 ...

  7. 希望早几年知道的5个Unix命令

    原文: http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 希望早几年知道的5个Unix命令 使用*nix系统已经有一段时间了.但是还是有 ...

  8. 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)

    关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...

  9. 对于JavaScript的函数.NET开发人员应该知道的11件事

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...

  10. 每个极客都应该知道的Linux技巧

    每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...

随机推荐

  1. elasticsearch索引和映射

    目录 1. elasticsearch如何实现搜索 1.1 搜索实例 1.2 es中数据的类型 1.3 倒排索引 1.4 分析与分析器 1.4.1 什么是分析器 1.4.2 内置分析器种类 1.4.3 ...

  2. flask利用session身份伪造

    想研究很久了,这次终于初步了解了flask session伪造(得知道密钥). python2和python3 session解密不一样,而且不都是base64,脚本https://github.co ...

  3. 你的第一个自动化测试:Selenium 自动化测试

    前言: 让你掌握自动化测试暂时脱离手工点点点,本章节让你掌握 Selenium 如何定位.判定.操作元素(实现业务逻辑) 一. 前期准备 1.准备以下工具 1.Selenium下载地址:立即下载 2. ...

  4. 关于Ckpalyer播放器的MP4无法播放问题

    此文是从网上摘要的 有时在本地使用ckplayer来播放视频,flv格式非常容易的就播放了,但是使用mp4格式却显示:加载失败.为什么呢?        首页看下你i的本地站点MIME类型中,是否增加 ...

  5. pom中的resources设置

    Maven项目中一般都会把配置文件放到src/main/resources目录下,有时为了满足多个环境打包发布,可能会创建一些自定义目录来放置各环境的配置文件,如:src/main/profile/d ...

  6. 在python中如何比较两个float类型的数据是否相等

    奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情.比方说,0.1+0.2得到的结果竟然不是0.3? >>> 0.1+0.2 0.300000000000000 ...

  7. html页面分块加载

    方法:jQuery ajax - load() 方法 这个方法可以请求html页面,并把结果放在指定元素内.

  8. 第五章 Internet协议

    写在开头: 埋头学习也差不多半个月了,达到了这半个月每天都会去图书馆的目标.确实挺忙的,不管在学习上,部门社团上,党建上.有时候为了多学一些总是会挤掉了其他事情的一些时间.但是自己时刻提醒着自己不要太 ...

  9. Scala 基础(2)—— 基本数据结构

    1. Scala 的面向对象 在学习 Java 的时候,我们说 Java 是一门面向对象的语言,然而 Java 其实并没有完全遵守“一切皆对象”这一准则. 例如:Java 的8种基本数据类型 & ...

  10. Nginx负载均衡的实现(初级)

    不用nginx.conf,新建一个 fzjh.conf (名称自定义) 内容如下: user nobody; # 声明用户为nobody worker_processes 4; # 开启的nginx ...