在编程时,小挫折可能与大难题一样令人痛苦。没人希望在费劲心思之后,只是做到弹出消息窗口或是快速写入数据库。因此,程序员都会喜欢那些能够快速处理这些问题,同时长远来看也很健壮的解决方案。

下面这6个Python库既可以快速解决眼前的棘手问题,同时也能够作为大型项目的基础。

Pyglet

是什么Pyglet是一个纯Python语言编写的跨平台框架,用于开发多媒体和窗口特效应用。

为什么需要它:从头开发图形界面应用所需要的功能模块是十分繁琐的,Pyglet提供了大量现成的模块,省去了很多的时间:窗口函数,OpenGL特效,音频与视频回放,键鼠处理以及图片处理。(不过,Pyglet并没有提供类似按钮、工具栏或菜单等UI部件。)

所有上述模块都是在Windows、OS X或Linux平台下原生实现的,并不依赖外部二进制包;它是纯Python语言编写的。Pyglet通过BSD协议发布,可以用于任何商业和开源项目。

Peewee

是什么Peewee是一个小型但是十分强大的库,支持通过ORM的方式访问数据库,原生支持SQLite、MySQL和PostgreSQL等数据库。

为什么需要它: 任何一个需要经常使用外部数据的应用基本都会用到数据库,但是通过临时连接从数据库中读写数据会带来很多麻烦。

Peewee提供了一条访问数据库资源的安全、稳定的通道。对于Python程序员和数据库工程师来说,该库所提供的Python类使用起来将会得 心应手。有了Peewee的支持,我们可以快速便捷地访问数据库,后续还可以扩展加入更多的选项,不需要重新设计。Peewee同时原生支持数据库事务 (transaction),并有许多可选的额外模块,提供了从数据库连接池(connection pooling)到类似多对多(many-to-many)的高级field类型等功能。

Bottle

是什么Bottle是一个小型的轻量网络开发框架,同时速度也很快。

为什么需要它: 如果你只是想快速创建一个Restful API接口,或者只想用网络开发框架的做一个简单的应用,Bottle可以轻松地满足你的要求。它具备了你将需要的所有功能:路由、模板、访问请求与响应 数据(request and response data)、支持多种网络服务器以及WebSockets等高级功能。

创建一个应用所需的工作极少,而且Bottle在设计时就考虑了可扩展性,如果需要更多高级功能,随时就可以接入。

Invoke

是什么:简单来说,Invoke 让你通过一个Python库便捷地执行系统管理任务。

为什么需要它: 谁不想要一个“可以运行shell命令、定义并归类执行任务的简洁、高级接口”呢?利用Python替代一般的shell脚本,并执行相应的任务,是完全 合理的。Invoke提供了执行常见命令行任务并进行管理的解决方案。对于Invoke来说,每个管理任务就像是Python函数一样,可以在此基础上优 雅地设计更为复杂的任务。

需要注意的是,Invoke当前仍是预览版;如果你想使用稳定的工具(即使是不再积极开发),可以考虑Invoke的前身——Fabric

Splinter

是什么Splinter是一个自动化测试网络应用的Python库。

为什么需要它: 大家都知道,没有什么比自动化网络应用测试更无聊的事了。有了Splinter,就可以将打开浏览器、输入URL、填写表单、点击按钮等全部操作自动化。

特定的浏览器需要使用相应的驱动器(drivers),不过还好已经自带了Chrome和Firefox驱动器。另外,Splinter还可以通过Selenium Remote来远程控制其他机器上的浏览器。你甚至可以在目标浏览器中手动执行JavaScript代码。

如果你想知道某个浏览器在浏览指定网站时的具体情况,那么Splinter将是一个很有用的工具。如果想了解不依赖浏览器与网站进行交互,可以查看Twill。(译者:Twill是一种脚本语言,支持用户通过命令行浏览网络。)

Arrow

是什么Arrow这个库可以更好地处理Python中的日期和时间(data/time)。

为什么需要它: 处理时区、日期转换、应对不同的日期格式以及其他日期相关的东西,足够让你头疼一天半的。如果使用Python自带标准库中的模块,那么估计你得头疼两天了。

改用Arrow库的话有四大好处,不管长期还是短期都是很有用的。第一,它可以完美替代Python中的datetime模块,这意味着你仍可以使用类似.now().utcnow()这些常见的函数调用形式。第二,它提供了满足转换时区等常见需求的方法。第三,它提供了“人性化”的日期/时间信息——也就是,它可以很轻松地告诉你某件事是在“一小时以前”发生的,或是“将在两小时后”发生。第四,它很容易地将日期/时间信息转换为当地时间。

Python 程序员都会喜欢的 6 个库的更多相关文章

  1. 做为一个Python程序员的基本素养

    今天在学习的过程中,明白了一些不是Python标准所必须要做的事情,二是做为一个合格的Python程序员应该所遵从的一些规范 分享给大家,有不足的地方请大家指正,此下是我学习的一点心得: 1.在给变量 ...

  2. 为什么二流程序员都喜欢黑php?

    为什么二流程序员都喜欢黑php? 为什么程序员都喜欢黑php?这个嘛!你骂一句php是垃圾试试,保准php程序员不揍扁你!这就好像自己的母校,纵然有很多不好的地方,但是只允许自己调侃,不允许外人骂半句 ...

  3. 5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

  4. Python程序员的进化史

    各种程序员所写的阶乘算法代码 # -*- coding: utf-8 -*- #新手程序员(递归) def factorial(x): if x == 0: return 1 else: return ...

  5. 介绍Python程序员常用的IDE和其它开发工具

    概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境), ...

  6. Python程序员去上海工作有多难?

    我只能说,也要看你掌握的技术可以打多少分.技术熟练度跟找工作的难易程度是成正比的:你掌握得越好,找工作就越容易(难度系数越低):反之越高. Python程序员这种技术类的工作岗位,当然还是要有扎实的技 ...

  7. Python程序员常用的IDE和其它开发工具

    概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE的全称是Integration Development Environment(集成开发环境),一 ...

  8. 月薪3万的python程序员都看了这本书

    想必大家都看过吧 Python编程从入门到实践 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌 ...

  9. Python程序员鲜为人知但你应该知道的16个问题(转)

    add by zhj: 没找到原文出处,只能找到转载的,文中说有17个坑,其实是16个 全文如下 这篇文章主要介绍了Python程序员代码编写时应该避免的16个“坑”,也可以说成Python程序员代码 ...

随机推荐

  1. python MQTT 出现TypeError: payload must be a string, bytearray, int, float or None.

    原因, MQTT 发布信息,是不能发布 对象的,只能发布 字符串,整形,浮点型这样的 解决方法 self.__mqtt__.publish("computex/iot/5100/DataTr ...

  2. 无线linux应用及配置--wifi配置

    linux下应用wifi,AP侧运行程序hostapd,客户端运行wpa_supplicant.官网:http://w1.fi/. 无线网卡应用 无线网卡的应用服务程序为wpa_supplicant, ...

  3. 【转】全Javascript的Web开发架构:MEAN和Yeoman【译】

    引言 最近在Angular社区的原型开发者间,一种全Javascript的开发架构MEAN正突然流行起来.其首字母分别代表的是:(M)ongoDB——noSQL的文档数据库,使用JSON风格来存储数据 ...

  4. Spark SQL讲解

    Spark SQL讲解 Spark SQL是支持在Spark中使用Sql.HiveSql.Scala中的关系型查询表达式.它的核心组件是一个新增的RDD类型SchemaRDD,它把行对象用一个Sche ...

  5. 在 Linux 下用 grep 时高亮显示匹配的部分

    用 grep 匹配文件时,显示结果黑压压的一片执行一下这条命令,重新 grep 试试看export GREP_OPTIONS='--color=auto'好看多了,不是吗?你可以把 export GR ...

  6. orderBy 传入属性的字符串

    IEnumerable下面的的OrderBy可以用于集合的排序. public static IOrderedEnumerable<TSource> OrderBy<TSource, ...

  7. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad

    简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...

  8. 读取 classes下的配置文件

    调用: Configure.getValue("discount.strategy.class"); 配置类: package com.util; import com.sun.j ...

  9. Claims-Based Authentication and Authorization

    Introduction You can download the Visual Studio solutions for this article at this location. With al ...

  10. Kali配置网卡静态信息

    临时配置ip ifconfig eth0 up //端口启用 ifconfig eth0 down //端口关闭 ifconfig eth0 192.168.1.10 //只修改ip地址 ifconf ...