当前位置: 首页 > 后端技术 > Python

每个使用Python的人都应该知道的10个Python库

时间:2023-03-26 18:48:46 Python

每个使用Python的人都应该知道的10个Python库只要看看Python提供的大量库,包括本机库和第三方库。尽管如此,有这么多Python库,有些库没有得到应有的关注也就不足为奇了。另外,只在一个领域工作的人不知道另一个领域有什么好东西,不知道其他领域的东西能产生什么有用的价值。这里列出了10个您可能会忽略但绝对值得注意的Python库。这些工具非常通用,简化了从文件系统访问、数据库编程和云服务到构建轻量级Web应用程序、创建gui、图像工具、Excel和Word文件等事物的工作复杂性。一些库是众所周知的和有些不是,但所有这些Python库都值得在您的工具箱中占有一席之地。1.Arrow箭头:让您更方便的处理日期和时间。为什么使用箭头:还记得我们之前谈到的日期计算吗?其实就是一个简单的计算教程。想一想,如果我们要切换时区怎么办,如何更灵活地格式化日期呢?即使有python这么好用的工具,如果只使用原生库,也得纠结一阵子。现在我们有了更好的选择:Arrow。Arrow有四大优势。首先,arrow是Python的datetime模块的直接替代品,这意味着像.now()和.utcnow()这样的常见函数调用可以正常工作。其次,Arrow提供了一些常用的方法,比如转换时区。第三,Arrow提供“人性化”的日期/时间信息,例如能够毫不费力地说出“一小时前”或“两小时后”发生的事情(就像我们在夏天所说的那样)。第四,Arrow可以轻松地本地化日期/时间信息。以下是Arrow用法的三个示例:importarrow#示例1:获取当前时间戳t=arrow.utcnow()print(t.timestamp)#1566128587#示例2:获取当前时间并将其格式化为字符串t=arrow.now()s1=t.format()print(s1)#2019-08-1819:43:07+08:00s2=t.format("YYYY-MM-DD")print(s2)#2019-08-18#示例3:字符串转Arrow,格式化为其他格式的字符串t=arrow.get("2019-12-3111:30","YYYY-MM-DDHH:mm")s3=t.format('YYYYMMDD')print(s3)#201912312.BeholdBehold:一个强大的代码调试工具。如果你只是用print来调试项目,你会发现这一招在大型项目中根本行不通!因为大型项目的数据流是非常复杂的,你要跟踪一个变量的流向。这时候,你可能会出现隔几句就写一个印的尴尬局面。这时候,看哪就非常有利了。它具有搜索、过滤和排序功能,可以显示跨模块的数据流。推荐阅读官方示例:https://behold.readthedocs.io/en/latest/ref/behold.html3.Blackblack:使用严格的规则格式化Python代码。黑色是一种毫不妥协的格式化工具。它会检测不符合规范的代码风格,并直接为您全部格式化。您不需要自己确定它们。非常适合代码风格混乱的人进行自我纠错。它也非常易于使用。CMD/Terminalinstallblack:pipinstallblack然后同理,CMD/Terminal进入你的Python文件所在的文件夹,然后输入:black你的文件名.py格式化文件中的代码。4.BottleBottle:轻量级网站/api开发工具。当你想构建一个快速的RESTfulAPI或使用Web框架的基础框架来构建一个应用程序时,Bottle完全足够了。路由、模板、请求和响应、对许多请求协议的支持,甚至支持websockets等高级功能。同样,入门所需的工作量很小,当需要更高级的功能时,Bottle可以很好地扩展,这非常好。5.ClickClick:可让您快速构建Python应用程序的命令行界面。在使用click之前,我们是如何获取用户输入的?是val=input(xxx)的形式吗?虽然很简单,但是想给它设置一个默认值的时候很麻烦,但是click可以让你免去这样的麻烦:importclick@click.option('--count',default=1,help='Numberofgreetings')@click.option('--name',prompt='Yournameis',help='User'sname')天哪,简直是上帝送给Python程序员的礼物。更多功能请阅读[官方文档](https://click-docs-zh-cn.readthedocs.io/zh/latest/),例如还可以设置输入参数:importclick@click.command()@click.option('--count',default=1,help='欢迎次数')@click.option('--name',prompt='你的名字是',help='用户名')defhello(count,name):"""欢迎count次名为name的用户。"""forxinrange(count):click.echo('Hello%s!'%name)if__name__=='__main__':hello()运行结果6.NuitkaNuitka:将Python编译成C++级别的可执行文件。重点是C++级别的应用,速度很快!高速!高速!虽然Cython也可以将Python编译成C,但Cython只专注于数学和统计应用,而Nuitka可以使用任何Python程序原样编译成C,生成单文件可执行文件。虽然还处于起步阶段,但其未来的辉煌可想而知。7.NumbaNumba:有选择地加速数学计算。这是我之前梦寐以求的功能,我们知道Numpy是通过在Python接口中包装一个高速C库来工作的,Cython是将某些用户选择的类型编译成C的,但是我们发现这些东西做起来并不是很顺利使用,感觉“命运”不在我手上。有了Numba,我们可以加速功能。你所要做的就是在功能之上添加一个装饰器,这真的很舒服:@nb.jit(nopython=True)defacc(x):8.openpyxlopenpyxl:读写Excel文件,还记得我们那篇日历文章吗?我们在那篇文章中使用了openpyxl库,本质上这个库不仅仅是用来操作Excel的,它还有一些独有的功能,比如可以写入最新的文件格式xlsx,大小没有限制,而且这两个功能已经完全爆了xlwt,当然速度上不如xlwt,所以你需要权衡一下9.Peeweepeewee:一个支持sqlite、Mysql和PostgreSQL的小型ORM(方便写数据库)。这是我在python上接触到的第一个ORM。不是每个人都喜欢用这个东西,但是对于那些不喜欢接触SQL语句开发的人来说,这个东西就是一个宝物。peewee非常容易搭建、连接和操作数据库,内置了很多查询操作功能。但是,需要注意的是,peewee3.x并不完全兼容旧版本。10.PyFilesystemPyFilesystem:简化文件和目录的处理,支持对任何文件系统的操作,大大提高编程效率。在你的开发过程中,你有没有担心过这样的事情:在一个不存在的文件夹中打开一个文件(新建的),判断某个目录下是否存在某个文件,判断某个目录是否存在,当然,如果如果你很精通os和io模块,你会觉得这些东西是那么容易。但是对于一些对这两个模块的语句不熟悉的同学,可以google一下。幸运的是,现在有了PyFilesystem,我们的编程生活可以快乐很多。它可以支持任何文件系统的操作,并提供很多有用的功能,比如查看当前目录下的文件:fromfsimportopen_fsmy_fs=open_fs('.')print(my_fs.listdir('/'))来显示thedirectoryStructuretreefromfsimportopen_fsmy_fs=open_fs('.')my_fs.tree()当然还有更多的功能,请阅读官方文档。Python实战宝典(pythondict.com)不只是一个合集欢迎关注公众号:Python实战宝典