pathlib(pathlib rglob)

http://www.itjxue.com  2023-02-19 05:10  来源:未知  点击次数: 

Python标准库的主要功能有哪些?

Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。

Python标准库的主要功能有:

文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能。

文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能。

操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、日志等功能

网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能。

网络协议,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架。

W3C格式支持,包含HTML,SGML,XML的处理。

其它功能,包括国际化支持、数学运算、HASH、Tkinter等。

最受欢迎的 15 大 Python 库有哪些

1、Pandas:是一个Python包,旨在通过“标记”和“关系”数据进行工作,简单直观。它设计用于快速简单的数据操作、聚合和可视化,是数据整理的完美工具。

2、Numpy:是专门为Python中科学计算而设计的软件集合,它为Python中的n维数组和矩阵的操作提供了大量有用的功能。该库提供了NumPy数组类型的数学运算向量化,可以改善性能,从而加快执行速度。

3、SciPy:是一个工程和科学软件库,包含线性代数,优化,集成和统计的模块。SciPy库的主要功能是建立在NumPy上,通过其特定子模块提供有效的数值例程,并作为数字积分、优化和其他例程。

4、Matplotlib:为轻松生成简单而强大的可视化而量身定制,它使Python成为像MatLab或Mathematica这样的科学工具的竞争对手。

5、Seaborn:主要关注统计模型的可视化(包括热图),Seaborn高度依赖于Matplotlib。

6、Bokeh:独立于Matplotlib,主要焦点是交互性,它通过现代浏览器以数据驱动文档的风格呈现。

7、Plotly:是一个基于Web用于构建可视化的工具箱,提供API给一些编程语言(Python在内)。

8、Scikits:是Scikits

Stack额外的软件包,专为像图像处理和机器学习辅助等特定功能而设计。它建立在SciPy之上,中集成了有质量的代码和良好的文档、简单易用并且十分高效,是使用Python进行机器学习的实际行业标准。

9、Theano:是一个Python软件包,它定义了与NumPy类似的多维数组,以及数学运算和表达式。此库是被编译的,可实现在所有架构上的高效运行。

10、TensorFlow:是数据流图计算的开源库,旨在满足谷歌对训练神经网络的高需求,并且是基于神经网络的机器学习系统DistBelief的继任者,可以在大型数据集上快速训练神经网络。

11、Keras:是一个用Python编写的开源的库,用于在高层的接口上构建神经网络。它简单易懂,具有高级可扩展性。

12、NLTK:主要用于符号学和统计学自然语言处理(NLP) 的常见任务,旨在促进NLP及相关领域(语言学,认知科学人工智能等)的教学和研究。

13、Gensim:是一个用于Python的开源库,为有向量空间模型和主题模型的工作提供了使用工具。这个库是为了高效处理大量文本而设计,不仅可以进行内存处理,还可以通过广泛使用NumPy数据结构和SciPy操作来获得更高的效率。

…………

你可能没有在Python3中使用但却应该使用的东西

由于Python EOL的发布,许多人开始将他们的Python版本从2切换到3。不幸的是,我发现大多数Python3看起来仍然像Python2,但是要加括号(尽管在我之前的文章《使用Python进行web抓取介绍》中的代码示例也是这样)。下面,我将展示一些令人兴奋的特性示例,你只能在Python3中使用它们,希望它可以让你使用Python解决问题变得更容易。

所有示例都是在Python 3.7中编写的,每个特性都包含该特性所需的最低Python版本。

在任何编程语言中,没有字符串是很难做任何事情的,为了保持理智,你希望有一种结构化的方法来处理字符串。大多数使用Python的人更喜欢使用format方法。

除了format,Python 3还提供了一种通过f-strings进行字符串插值的灵活方法。和上面一样使用f-strings的代码是这样的:

f-strings非常棒,但是有些字符串(比如文件路径)有自己的库,这使得它们的操作更加容易。Python 3提供了pathlib作为一个处理文件路径的方便抽象。如果你不确定为什么你应该使用pathlib,试着阅读这篇优秀的文章——《为什么你应该使用pathlib》——Trey Hunner。

静态和动态类型是软件工程中一个热门的话题,几乎每个人都对此有自己的看法。我将让读者决定何时应该编写类型,但我认为你至少应该知道Python 3支持类型提示。

Python 3提供了一种通过Enum类来编写枚举的简单方法。枚举是封装常量列表的一种方便的方法,因此它们不会在没有太多结构的情况下随机分布在你的代码中。

枚举是一组符号名称(成员),它们绑定到惟一的常量值。在枚举中,可以通过标识对成员进行比较,并且枚举本身也可以被遍历。

缓存存在于我们今天使用的几乎所有水平的软件和硬件中。Python 3通过将LRU(最近最少使用的)缓存公开为一个名为lru_cache的装饰器,使得使用它们变得非常简单。

下面是一个简单的Fibonacci函数,我们知道它将从缓存中受益,因为它通过递归多次执行相同的任务。

现在我们可以使用lru_cache对其进行优化(这种优化技术称为memoization(记忆化))。执行时间从几秒降到几纳秒。

请查看代码(文档 )。

Python 3引入了数据类,这些数据类并没有太多限制,可以使用它们来减少样板代码,因为装饰器会自动生成特殊的方法,比如__init__() 和__repr()__。根据官方建议,它们被描述为“具有默认值的可变命名元组”。

使用数据类的Armor的相同实现。

结构化Python代码的一种方法是在包中(带有一个__init__.py文件的文件夹)。下面的示例是由官方Python文档提供的。

在Python2中,上面的每个文件夹都必须有一个__init__.py文件,它会将该文件夹转换为一个Python包。在Python3中,随着隐式命名空间包的引入,这些文件就不再需要了。

编者注:正如一些人所说,这并不像我在本节中指出的那样简单,从官方的PEP 420规范来看——__init__.py对于普通包仍然是必需的,将它从文件夹结构中删除将会把文件夹变成一个带有附加限制的本地命名空间包,关于本机命名空间包的官方文档对此展示了一个很好的例子,以及命名所有的限制。

就像互联网上几乎所有的列表一样,本列表并不完整。我希望这篇文章至少向你展示了一个你以前并不知道的Python 3功能,它将帮助你编写更简洁、更直观的代码。一如既往,所有的代码都可以在GitHub上找到。

( )

Python中如何删除一个文件

使用Python删除文件有多种方法,但是最好的方法如下:

os.remove()删除文件

os.unlink()删除文件

shutil.rmtree()删除目录及其下面所有内容

pathlib.Path.unlink()在Python3.4及更高版本中用来删除单个文件pathlib模块。

os.remove()删除文件

Python中的OS模块提供了与操作系统进行交互的功能。OS属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便捷式方法。

python中的os.remove()方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError。

注意:可以使用os.rmdir()删除目录。

使用os.unlink()删除Python文件

os.unlink()是os.remove()的别名。在Unix OS中,删除也称为unlink。

注意:所有功能和语法与os.unlink()和os.remove()相同。它们都用于删除Python文件路径。两者都是Python标准库的os模块中执行删除功能的方法。

它有两个名称,别名:os.unlink()和os.remove()。

为同一个函数提供两个别名的可能原因是,该模块的维护者认为,许多程序员可能会从C的底层编辑转向Python,其中库函数和底层系统调用称为unlink(),而其他人则可能会使用rm命令或shell脚本来简化语言。

使用shutil.rmtree()删除Python文件

shutil.rmtree():删除指定的目录,所有子目录和所有文件。此功能特别危险,因为它无需检查即可删除所有内容。结果,您可以使用此功能轻松丢失数据。

rmtree()是shutil模块下的一种方法,该方法以递归方式删除目录及其内容。

使用pathlib.Path.unlink()删除文件

pathlib模块在Python3.4及更高版本中可用。如果要在Python2中使用此模块,可以使用pip进行安装。pathlib提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。

要使用pathlib模块删除文件,请创建一个指向该文件的Path对象,然后对该对象调用unlink()方法。

(责任编辑:IT教学网)

更多