pathlib获取文件名(python获取路径下文件名)

pathlib获取文件名(python获取路径下文件名)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <blockquote> 

讯享网

原文:AskPython Blog

协议:CC BY-NC-SA 4.0

原文:https://www.askpython.com/python/built-in-methods/open-files-in-python

Python 在其标准库中为我们提供了文件处理方法。这对于开发人员来说非常方便,因为您真的不需要导入更多的模块来处理文件。

Python 为我们提供的文件处理的关键方法有、、、、和。

让我们回顾一下方法,它允许我们以不同的模式打开 Python 中的文件。

要打开一个文件,我们需要的只是文件所在的目录路径。如果它位于同一个目录中,那么只包含完整的文件名就足够了。

我已经创建了一个包含一些示例文本的文件,我们将使用它作为学习 open file 方法的示例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
讯享网

Python Open File Sample File Contents

1.使用 open()方法打开文件

要打开 OpenFile.txt 并读取文件的文本内容,让我们使用 和方法。

讯享网

方法将读取文件的全部内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python Open File Output

默认情况下,方法以只读模式打开文件。要写入文件,我们需要指定文件必须以写模式打开。

2.open()方法的不同模式

让我们尝试在默认模式下写入文件。

 

我们将保持读取操作不变,这样我们就可以看到代码在哪里停止。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

File Write Not Permitted Read-Only Mode

那么什么是模式,我们如何添加它们呢?下面是使用 open()方法时的模式列表。

  • r :只读模式。
  • r+: 读写模式。不会创建新文件,如果文件不存在,打开将会失败
  • rb :只读二进制模式,读取图像、视频等。
  • w: 只写模式。覆盖现有文件内容。如果指定的文件名不存在,这将创建一个新文件。
  • w+: 读写模式。
  • wb: 写入媒体文件的二进制只写模式。
  • wb+: 二进制读写模式。
  • 答:追加模式。不覆盖现有内容
  • a+: 追加和读取模式。如果文件名不存在,它将创建一个新文件。
  • ab: 为图像、视频等追加二进制模式。
  • ab+: 追加读取二进制模式。

3.在 Python 中以写模式打开文件

在 Python 中,有多种方式可以在写入模式下打开文件。根据您希望文件处理方法如何写入文件,您可以使用以下模式之一。

讯享网

通过在打开文件的第一行时添加“w ”,我们指定文件应该以写模式打开。但是这个操作也会失败,因为文件是只写的,不允许我们使用 read()方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Write Only Mode File Not Readable

 

上面的代码将完全清除文本文件的所有内容,而只说“新内容”。

如果您不想覆盖文件,您可以使用 a +或 r+ 模式。

r+模式将写入传递给方法的任何内容。

讯享网

a 或 a+模式将执行与 r+模式相同的操作,但有一个主要区别。

在 r+方法的情况下,如果指定的文件名不存在,则不会创建新文件。但是使用+模式,如果指定的文件不可用,将创建一个新文件。

4.使用 with 子句打开文件

当使用方法读取文件时,您总是需要确保调用了方法以避免内存泄漏。作为一名开发人员,您可能会错过添加 方法的机会,这会导致您的程序由于文件被打开而泄漏文件内存。

对于较小的文件,对系统资源没有明显的影响,但在处理较大的文件时会表现出来。

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python Open File Output

在上面的例子中,输出将与我们在开始时看到的一样,但是我们不需要关闭文件。

一个 块一执行就获得一个锁,一旦块结束就释放锁。

您还可以在数据上运行其他方法,同时保持在代码块中。在这种情况下,我编辑了 OpenFile.txt,并添加了一些更多的文本以便更好地理解。

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

With Command Open File Python 1

只要我们继续在其作用域内工作,语句就会为我们处理内存。这是在 Python 中处理文件的另一种但更好的方法。

现在,您应该已经掌握了如何在 Python 中打开文件,以及如何使用 open()方法处理打开文件的不同模式。我们将在接下来的教程中进一步介绍文件处理方法。

原文:https://www.askpython.com/python-modules/open-webpage-urls-selenium

在本文中,我们将学习如何在 Selenium 中访问和打开网页 URL。Python Selenium 是以编程方式操作 web 浏览器的强大工具。它兼容所有浏览器,运行在所有主流操作系统上,其脚本是用各种语言编写的,包括 Python、Java、C#等。其中我们将使用 Python。

Selenium Python 绑定提供了一个简单的 API 来访问 Selenium WebDrivers,比如 Firefox、Internet Explorer、Chrome、Remote 等等。Selenium 目前支持 Python、3.5 和更高版本。

推荐阅读:Python Selenium 入门——安装设置

下面给出的代码示例一定会帮助你用 Python 打开网页 URL:

现在让我们学习如何在 Python Selenium 中访问网页和打开 URL。这是使用硒的最基本要求。一旦理解了这一点,您只需使用 XPaths 并确定如何使用您用 Python Selenium 收集的数据

1.安装 Python Selenium

我们将使用 pip 命令来安装 selenium 包。

 

2.导入模块

现在让我们在 Python 代码中导入 selenium 模块,开始使用它。

讯享网

注意:现在我们已经安装了 Selenium,但是要访问开放的 web 浏览器并使我们的代码可以访问它们,我们需要下载浏览器的官方驱动程序并记下它的路径

这里我们给路径命名为。/chromedriver.exe '因为我们已经将驱动程序放在了 Python 脚本的同一个目录中,如果您将它保存在任何其他地方,那么您必须提供它的完整路径。

3.打开 URL 示例

Python Selenium 中的 URL 是使用 Selenium 模块的 get() 方法打开或获取的

 

这将在一个新的测试浏览器窗口中打开谷歌的 Chrome 网站。

close()方法用于关闭浏览器窗口。

4.网页的标题

通过使用以下 python 命令,我们可以在控制台/终端窗口中将网页标题作为文本输出打开:

讯享网

5.在谷歌上搜索查询

语法:网站/搜索?q= ‘要搜索的主题’

这将在一个新窗口中显示 Chrome 浏览器中谷歌搜索 python 的结果。

 

6.在浏览器历史记录中来回移动

后退驱动在浏览器历史中后退一步。

语法:driver.back()

前进驱动在浏览器历史中前进了一步

语法:driver.forward()

示例实现:

讯享网

现在,这里首先谷歌将在一个新的窗口中打开,然后在同一窗口和谷歌网站上打开 python 官方网站

 

您需要在 back 和 forward 方法之间使用类似 time.sleep(5)的东西来真正注意到转换。

希望您已经学会了使用 Selenium 库在 Python 中打开网页 URL,并准备亲自尝试一下。

原文:https://www.askpython.com/python/examples/opencv-credit-card-reader

本教程的目的是帮助您使用 OpenCV 和机器学习技术构建一个信用卡读卡器,以识别卡号和卡类型。

让我们开始吧!

也读:如何使用 OpenCV 读取 Python 中的图像?


我们一直看到光学字符识别在机器学习和深度学习中被大量使用。许多这样的应用之一包括信用卡和卡号的识别和读取。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit Card Reader Demonstration

你可能会想到的问题是为什么?因此,这个应用程序对于银行和其他金融机构数字识别卡号和卡的类型有很大的帮助。


现在我们已经理解了这个概念,以及在本教程结束时我们将要构建什么。

让我们一步一步地开始构建项目。


步骤 1:导入模块

在这种情况下,我们将使用 numpy 和 matplotlib 以及 openCV 模块。

讯享网

步骤 2:分配卡类型

卡的类型是根据卡号的第一个数字来分配的。同样显示在下面。

 

步骤 3:参考图像的加载和预处理

为了读取参考 OCR 图像,我们利用 功能。参考图像包含 OCR 字体中的数字 0-9,这种字体可以在以后的流水线中用于执行匹配。

图像的预处理包括将其转换为灰度图像,然后阈值化+反转图像以获得二值反转图像。

讯享网

步骤 4:检测轮廓

在这一步中,我们找到预处理图像中的轮廓,然后存储返回的轮廓信息。接下来,我们从左到右对轮廓进行排序,并初始化字典 digits,它将数字名称映射到感兴趣的区域。

 

步骤 5:在数字周围创建边界框

现在,在这一步中,我们循环遍历在上一步中获得的图像轮廓,其中每个值包含数字/数字以及轮廓信息。我们进一步计算每个轮廓的边界框,并存储(x,y)坐标以及计算出的框的高度和宽度。

讯享网

步骤 6:信用卡图像的加载和预处理

在这一步,我们加载我们的信用卡照片,然后同样的宽度为 300,以保持长宽比。

该步骤之后是将图像转换为。在这之后,我们对灰度图像执行。

下一步是计算一个 ,并将结果存储为。然后我们计算存储的 gradX 数组的绝对值。我们的目标是缩放 范围内的所有值。

现在,通过计算 gradX 的最小和最大值来进行值的归一化,并形成一个等式来实现

最后,我们找到并将它们存储在一个列表中,并初始化一个列表来保存数字组的位置。然后像我们在中对参考图像所做的一样循环遍历轮廓。

接下来,我们将对来自的分组进行排序,并为信用卡数字初始化一个列表。

 

现在我们知道了每组四位数的位置,让我们遍历这四个已排序的分组并确定其中的位数。循环还包括阈值处理、检测轮廓和模板匹配

讯享网

步骤 7:显示最终结果

下面的代码将显示最终的卡类型、卡号和 OCR 应用的图像。

 

讯享网

现在让我们看看在各种信用卡图像上实现上述代码后的一些示例输出。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit Card Reader Output 01

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit Card Reader Output 02

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Credit Card Reader Output 03


我希望你理解这个概念,并喜欢输出。用更多的图片尝试同样的方法,结果会让你大吃一惊。

编码快乐!😇

想了解更多?查看下面提到的教程:

  1. Python:检测轮廓
  2. 箱线图:使用 Python 进行图像边缘检测
  3. Python 中的图像处理——边缘检测、调整大小、腐蚀和膨胀

原文:https://www.askpython.com/python-modules/opencv-filter2d

大家好!在本教程中,我们将学习如何使用 OpenCV 方法在图像上应用滤镜,如锐化、模糊和在图像中寻找边缘。所以让我们开始吧。

也读:用 OpenCV 用 Python 读图像

在图像处理中处理图像时,功能用于根据周围的像素亮度值改变图像的像素亮度值。这种方法可以增强或移除图像的某些特征来创建新图像。

python 中定义函数的语法如下:

 
  • src :应用过滤器的源图像。它是一个以像素亮度值表示图像的矩阵。
  • ddepth :目标图像的理想深度。值-1 表示结果图像将具有与源图像相同的深度。
  • 内核:内核是应用在图像上的滤镜矩阵。

更正式地说,函数将图像与内核进行卷积,这导致图像变得模糊或锐化,并增强图像特征。

什么是内核?

也称为卷积矩阵或遮罩,内核是一个小的二维矩阵,它包含的值表示计算当前像素的亮度值时应该占用周围像素值的多少部分。通常,核是奇数长度的方阵,如 3×3,5×5,7×7 矩阵。

因此,核充当加权矩阵,并用于图像的模糊、图像的锐化、图像中边缘的检测等。在图像处理方面。这是通过图像和内核之间的卷积来完成的。

什么是卷积?

在图像处理中,卷积只是内核和源图像的某个部分的元素乘法,以产生代表像素的新的单个数据点,对图像的每个可能部分进行卷积,以创建新的图像。

在卷积中,我们从源图像中取出一个与核大小相同的子矩阵,将源图像的每个元素与核的相应元素相乘,对之前的计算执行加法,并对数据进行归一化,从而将数据表示为像素值。

考虑下图所示的示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Convolution Image Processing Example 1

图像上的卷积会导致图像的大小小于源图像。区别取决于我们内核的大小。然而,有一些方法可以处理它,如这里讨论的。

让我们对不同内核的图像应用函数,看看会得到什么结果。对于这个例子,我们将使用下面的图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Source Image

1.锐化图像

您可以了解更多关于锐化图像的信息。这一小段将锐化上面显示的图像。

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Sharpened Image

2.模糊图像

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Blur Image

3.图像的轮廓边缘检测

让我们用 OpenCV filter2D()函数来看看边缘检测。

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Outline Image

使用浮雕滤镜

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Emboss Image

使用 Sobel 滤波器

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Filter2d Sobel Image

在本教程中,您了解了图像处理中的卷积和内核,以及如何在 python 中使用 OpenCV filter2D()函数来处理图像。现在你可以尝试不同的内核过滤器来获得不同的图像效果。

感谢阅读!!

原文:https://www.askpython.com/python-modules/opencv-imwrite

Python OpenCV 是基于英特尔在 2000 年开发的 C++函数。在本文中,将详细解释如何使用 imwrite()函数将图像保存到用户指定的目录中。

由于 OpenCV 是一个第三方库函数,它没有预装在任何 Python IDE 中。因此,首先,您需要学习安装和配置 OpenCV,以便将其用作导入包。

你可能喜欢:Python 的 5 大** ide

在这个例子中,我们使用 Pycharm IDE 来配置 Open CV,因为它比其他 IDE 更简单。

让我们安装最新版本的 PyCharm IDE。安装后,按照以下步骤进行配置:

  • 创建新项目。
  • 在项目中创建一个 python 文件(。py 扩展)
  • 然后进入文件>设置,在左窗格中点击你创建的项目的名称。在下拉菜单中,您会发现一个名为 Python 解释器的选项。
  • Python 解释器包含了该项目所需的所有解释器。您需要找到并点击位于“Package”栏上方的+号。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.1, Open CV Configuration

  • 点击它会打开一个新窗口,里面有一个很棒的 python 解释器列表。你需要搜索“opencv-python”并选择一个名为“opencv-Python”的,不要其他的

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.2 Open CV configuration

  • 点击下面的安装包。这将在您的 pycharm 系统中安装 opencv 包以及其他必要的包,如果它们像’ pip ‘,’ numpy '等丢失的话

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.3 Open CV configuration

一旦完成以上步骤,PyCharm IDE 项目就可以使用了。现在我们来看编码部分。

以下内容将提供使用 python OpenCV imwrite()保存图像的步骤。

1.导入 OpenCV

从图像保存开始,我们将导入我们需要的两个包:cv2、os。

 

这篇特别的文章将使用两个 OpenCV 函数来保存图像。两个必需的 cv2 功能是:

  • im read()
  • imwrite()

2.读取图像

在读取映像之前,程序员需要向编译器指定文件路径和目录。

首先,用图像的文件路径初始化变量‘image location ’,而另一个变量‘filedirectory’用于保存新图像文件将被保存的目录路径。

当两个变量都被初始化时,使用 imread()函数读取图像

示例代码:

讯享网

注意:要保存的图像文件应该位于 Python 项目文件夹中。您可以使用 PyCharm IDE 复制图像并将其粘贴到文件夹中,也可以手动搜索文件夹并将图像粘贴到其中。

3.保存图像

这里,一个新的名称存储在变量“newfilename”中,然后函数 imwrite()获取上一个示例中使用的变量“image ”,并用新名称保存它。

示例代码:

 

4.使用 OpenCV imwrite()的完整代码

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

关于 Python OpenCV imwrite()函数的快速简单教程到此结束。OpenCV 库中还有很多你可以探索的,我鼓励你在这里浏览我们收集的 OpenCV 教程。

原文:https://www.askpython.com/python-modules/opencv-puttext

你好,学习伙伴!在本教程中,我们将学习如何使用 OpenCV putText()方法在 Python 中的图像上编写字符串文本。所以让我们开始吧。

OpenCV Python 是一个主要针对实时计算机视觉和图像处理问题的编程函数库。

OpenCV 包含用于在任何图像上放置文本的方法。该方法使用以下参数。

  • img: 你要在上面写文字的图像。
  • 文字: 您要在图像上书写的文字。
  • org: 是你的文字左下角的坐标。它被表示为一个由两个值(X,Y)组成的元组。x 表示距图像左边缘的距离,Y 表示距图像上边缘的距离。
  • 字体: 表示你要使用的字体类型。OpenCV 只支持好时字体的子集。
    • 字体 _ 好时 _ 单纯形
    • FONT_HERSHEY_PLAIN
    • FONT_HERSHEY_DUPLEX
    • FONT _ HERSHEY _ 复杂
    • FONT_HERSHEY_TRIPLEX
    • FONT _ 好时 _COMPLEX_SMALL
    • 字体 _ 好时 _ 脚本 _ 单纯形
    • FONT _ HERSHEY _ SCRIPT _ 复杂
    • 字体 _ 斜体
  • fontScale: 它用来增加/减少你的文本的大小。字体比例因子乘以特定字体的基本大小。
  • 颜色: 它代表你要给的文本的颜色。它采用格式的值,即首先是蓝色值,然后是绿色值,红色值都在 0 到 255 的范围内。
  • 粗细(可选): 表示用来绘制文本的线条粗细。默认值为 1。
  • 线型(可选): 表示您想要使用的线型。4 可用的线型有
    • 装满
    • 第 4 行
    • LINE_8(默认)
    • 线性的
  • bottomLeftOrigin(可选): 为真时,图像数据原点在左下角。否则,它在左上角。默认值为 False。

让我们使用下面的图片,用 OpenCV putText()方法写一个“早安”消息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OpenCV PutText Initial Image

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OpenCV PutText Final Image

在本教程中,您学习了如何使用 OpenCV putText()方法在图像上书写文本。感谢阅读!!

原文:https://www.askpython.com/python-modules/opencv2-resize

在本文中,我们将学习 OpenCV 包,以及它的 cv2 resize 函数。我们还将查看一些代码示例,以便更好地理解如何在实际场景中使用该函数。

该图像处理计算机库由英特尔构建,旨在解决计算机中的实时视觉问题。cv2 resize()函数专门用于使用不同的插值技术来调整图像的大小。让我们来了解如何。

讯享网

上面的代码演示了一个简单的调整大小技术。这里我们没有使用任何插值技术或比例因子,但我们得到了想要的输出。

我们也可以在语法中添加比例因子。缩放因子沿其轴缩放图像,不会给最终输出增加太多差异。带有比例因子的语法如下所示:

 

改变图像的长宽比可以给我们一个缩小或放大的图像。在这个例子中,我们将看看如何做到这一点。

我们将会看到 3 个代码块,其中包括–包导入和图像加载,缩放加载的图像背后使用的逻辑,以及最后,使用插值调整图像的大小。

导入和图像读取

讯享网

上面的代码导入 Python 的 OpenCV 库,然后将图像加载到变量‘pic’中。你可能已经注意到了,我们用了 cv2。它的基本功能是使用 alpha 通道加载图像,这意味着图片的原始分辨率得到保留。

改变纵横比的算法

 

让我们一行一行地理解上面的代码:

  • “pd_change”变量保存原始纵横比所需的百分比变化。
  • “new_resolution”变量将该百分比转换为小数并存储。
  • 变量‘pic _ width’和‘pic _ height’使用该十进制值保存新的高度和宽度。语法“pic.shape”用于获取原始图片的纵横比。[0]表示高度,[1]表示宽度。([2]用于不在本文学习范围内的渠道)
  • 变量‘new _ dimension’用于存储新的分辨率。

调整图像大小

讯享网

变量’ altered_size ‘使用 cv2.resize()函数调整图像大小,这里使用的插值方法是’ cv2。’ INTER_AREA ',基本上是用来缩小图像的。因此,最后,我们得到了我们的图像完美地缩放到我们想要的百分比大小。

让我们看看完整的代码,以了解全貌。

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Aspect Ratio Change

使用自定义值调整大小

我们可以用特定的宽度和高度值来调整图像的大小,而不考虑它们的原始尺寸。或者,我们可以改变单个参数,即高度,同时保持另一个参数,即宽度,不变。让我们看看代码,了解它是如何做到的。

讯享网

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Width Intact Resizing

这里,我们使用了一种不同的插值方法,“INTER_CUBIC”,它对 2X2 的相邻像素进行插值。更改插值方法不会产生太大的差异,在本例中最终结果几乎相同(作为练习,您可以通过更改插值方法并观察最终结果的变化,在您的机器上尝试本例)。尽管如此,在最终输出中,我们得到了一个高度改变的新图像。

注意:在上面的代码中,我们改变了图片的高度,也保持了我们的宽度不变。如果我们想在保持高度不变的情况下改变宽度,我们将使用:

 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Height Intact Resizing

我希望这篇文章能帮助你理解 cv2.resize 函数以及如何使用它来改变图像。我们研究了多种不同的方法,通过这些方法我们的图像可以**纵。我们还研究了如何使用插值来获得我们的图像所需的结果。希望这篇文章能对你的学习有所帮助。

原文:https://www.askpython.com/python-modules/openpyxl-in-python

在本文中,我们将学习 Python 中的 openpyxl。Excel 电子表格是你在人生的某个阶段必须处理的许多事情之一。你可能需要学习如何处理电子表格,要么是因为你的经理喜欢它们,要么是因为营销人员需要它们,这就是学习的用处所在。

您可以读取电子表格,遍历每一行,从数据库中检索数据,然后使用 Openpyxl 写回电子表格。


在开始学习本模块之前,让我们先了解下表中提到的基本定义:

| 期限 | 定义 |
| 工作簿 | 我们正在处理的主文件。 |
| 工作表 | 整个工作簿中的每个单独的工作表。 |
| | 标记为 A、B、C、D 等的垂直线。 |
| | 标记为 1、2、3、4、5 等的水平线。 |
| 单元格 | 标记为 A1、A2、A3 等的行和列的组合。 |

Some basic terms and definitions


Python 中的 Openpyxl 模块用于处理 Excel 文件,不需要第三方微软应用软件。利用这个模块,我们可以在不启动应用程序的情况下操作 Excel。它用于执行 excel 活动,例如从 excel 文件读取数据或将数据写入 excel 文件、绘制图表、访问 excel 表、重命名表、修改(添加和删除)表、格式化、设置表的样式以及任何其他作业。Openpyxl 是为您处理这些工作的高效工具。

数据科学家经常利用 Openpyxl 来执行各种任务,比如数据复制、数据挖掘和数据分析。

在 Python 中安装 Openpyxl

要使用 Openpyxl,您的计算机上必须安装 Python 3.7 和 openpyxl 2.6.2。让我们通过使用以下命令安装 openpyxl 来开始使用它:

讯享网

让我们直接进入 Python 中 openpyxl 库的工作。我们将通过 excel 文件实现这个库。事不宜迟,我们继续吧。

1。创建和赋值

首先,我们可以使用工作簿功能创建一个新的工作簿。一个工作簿总是包含至少一个工作表。

 

我们获取活动工作表的位置,并给活动工作表的单元格赋值。

讯享网

最后,我们可以使用 save()函数将所有数据存储到“sample_file.xlsx”文件中。最终的 excel 文件如下图所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SampleExcelFile1 Openpyxl

3。将数据追加到文件

Openpyxl 中的 append() 函数用于添加一组数据。可以附加任何种类的值。这些值被添加到底部的当前工作表中。

 

修改后的 excel 表如下所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SampleExcelFile2 Openpyxl


您现在了解了如何在 Python 中使用电子表格!说到 Excel 文件,您可以依靠 openpyxl 来完成任何事情!希望你喜欢它!😇

喜欢这个教程吗?无论如何,我建议你看一下下面提到的教程:

  1. 如何将熊猫数据帧转换成 Excel 文件
  2. 使用 Python 从 Excel 表格中绘制数据
  3. 使用 PySpark 打印数据——完整指南

感谢您抽出时间!希望你学到了新的东西!!😄


原文:https://www.askpython.com/python/operator-overloading-in-python

操作符过载是一种现象,它赋予操作符执行的操作超出其预定义操作功能的替代/不同含义。运算符重载也称为运算符特别多态性

Python 运算符适用于内置类。但是同一个运算符用不同的类型表示是不同的。例如,运算符将对两个数字执行算术加法,合并两个列表并连接两个字符串。Python 允许同一个操作符根据引用的上下文有不同的含义。


讯享网

输出:

 

为了执行操作符重载,Python 提供了一些特殊的函数或神奇函数,当它与特定的操作符相关联时会被自动调用。例如,当我们使用+操作符时,神奇的方法被自动调用,其中定义了+操作符的操作。


以双下划线 __ 开头的全局函数在 Python 中被称为特殊函数。是因为他们不一般。我们通常定义的类似于构造函数的 init()函数就是其中之一。每次我们创建该类的新对象时都会调用它。


Python 中二元运算符的神奇方法

| 操作员 | 魔法方法 |
| + | __ 添加 _ _(自己,其他) |
| | sub(自己,其他) |
| * | mul(自己,其他) |
| / | truediv(自己,其他) |
| // | floordiv(自己,其他) |
| % | mod(自己,其他) |
| | pow(自己,其他) |


Python 中比较运算符的神奇方法

| 操作员 | 魔法方法 |
| < | lt(自己,其他) |
| > | gt(自己,其他) |
| < = | le(自己,其他) |
| > = | ge(自己,其他) |
| == | eq(自己,他人) |
| != | ne(自己,其他) |


Python 中赋值运算符的神奇方法

| 操作员 | 魔法方法 |
| -= | isub(自己,其他) |
| += | iadd(自己,其他) |
| *= | imul(自己,其他) |
| /= | idiv(自己,其他) |
| //= | ifloordiv(自己,其他) |
| %= | imod(自己,其他) |
| = | ipow(自己,其他) |


一元运算符的神奇方法

| 操作员 | 魔法方法 |
| | neg(自己,其他) |
| + | pos(自己,其他) |
| ~ | invert(自身,其他) |


当我们使用+操作符时,神奇的方法被自动调用,其中定义了+操作符的操作。因此,通过改变魔术方法的代码,我们可以赋予+运算符另一种含义。

讯享网

输出:

 

讯享网

输出:

 

讯享网

输出:

 

  • Python 运算符重载
  • Python 比较运算符

原文:https://www.askpython.com/python/examples/optical-character-recognition

在本文中,我们将了解如何使用pytesserac或 python-tesserac 执行光学字符识别。Pytesseract 是一个用于宇宙魔方 -OCR 引擎的包装器。Tesseract 是一个开源的 OCR 引擎,由 Google 管理。

有时候,我们的图像中有文本,我们需要在电脑上输入文本。

对于我们来说,理解图像中的文字是非常容易的,但是对于计算机来说,理解图像中的文字却是一项非常困难的任务。

计算机只会将图像视为像素阵列。

OCR 在这项任务中派上了用场。OCR 检测图像上的文本内容,并将信息转换为计算机容易理解的编码文本。

在本文中,我们将了解如何使用 Python 执行 OCR 任务。

使用 pip 为 tesseract 安装 Python 包装器。

你可以参考这个关于栈溢出的查询来获得关于安装 Tesseract 二进制文件和使 pytesseract 工作的细节。

1.获取带有清晰可见文本的图像

现在让我们看一个样本图像,并从中提取文本。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sample text image

2.从图像中提取文本的代码

上面的图像是 jpeg 格式,我们将尝试从中提取文本信息。

讯享网

输出:

 

在使用 OpenCV 加载图像之后,我们使用 pytesseract image _ to _ string 方法,该方法需要一个图像作为输入参数。这一行代码将把图像中的文本信息转换成编码文本。

然而,如果我们不对图像进行预处理,OCR 的实际任务将是具有挑战性的,因为转换的效率直接受到输入图像质量的影响。

我们将用来预处理图像的步骤:

  • 将图像转换成灰度–图像需要转换成二进制图像,所以首先,我们将彩色图像转换成灰度。
  • 阈值处理用于将灰度图像转换为二值图像。它决定像素值是低于还是高于某个阈值。下面的所有像素都变成白色像素,上面的所有像素都变成黑色像素。
  • 现在将图像反转为使用 操作。
  • 运用腐蚀、膨胀等各种降噪技术
  • 将文本提取方法应用于预处理后的图像。

1.查找带有清晰文本的图像

让我们使用下图在代码中实现上述步骤:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sample For Test

2.使用 Python 从图像中预处理和提取文本的完整代码

现在,我们将按照步骤预处理文件,并从上面的图像中提取文本。当图像对于机器学习算法来说可读且清晰时,光学字符识别效果**。

讯享网

输出:

 

你可以在这里了解更多关于 OpenCV 及其图像转换功能。

这篇文章是关于用 Python 实现光学字符识别的,它使用了pytesserac包装器和一些预处理步骤,这些步骤可能有助于获得更好的结果。

快乐学习!

原文:https://www.askpython.com/python/examples/optimization-in-python

在本文中,我们将学习优化问题以及如何在 Python 中解决它。优化的目的是在大量的备选方案中选择一个问题的**解决方案。

也读:如何用 Python 写 Android 应用?

让我们看一个简单的优化案例。假设一家面包店每天生产 1000 包面包,每包包含 10 片面包。为了量化生产,每一批面包都是用精确数量的配料如小麦、酵母等来制作的。

在某个财政季度,公司决定在不降低面包质量或尺寸的情况下削减生产成本。管理层决定将其每个面包的对角线长度减少 1 英寸,这并不明显,但在大规模生产中具有广泛的意义。

所以现在,生产小尺寸面包所需的小麦和酵母的精确数量的要求使它成为一个优化问题。一个良好的优化结果可以削减投入成本,同时保持理想的面包大小。

像所有优化问题一样,这个有问题的任务需要一些对所有编程语言都类似的基本要素:

在这个关键时刻,最重要的解决方案是尽可能地削减成本。你必须陈述一种方法,该方法在将解决方案保持在期望的限制下的同时,针对优化问题估计可行的结果。

计算可能解的方法被称为目标函数。在面包尺寸问题中,目标函数将告诉我们,当准备一批新的尺寸减小的面包时,需要多少小麦和酵母。

目标函数旨在为任何问题提供最大值(“最大”在这里意味着值根据问题的需要要么最高要么最低),面包维度问题是最小化的,因此最终结果将为解决方案提供最大值,意味着最低值。

约束是对目标函数结果的限制,它依赖于问题的需要,这意味着,在需要最高/最低值的问题中,约束充当最终限制,解决方案不能跨越。

例如,制作一批面包所需的原材料的最低数量将作为一个约束,这意味着每批面包需要小麦和酵母的最低限制。最小化解决方案无法估计低于该阈值的结果。

可行的解决方案可以满足问题的所有要求,但不一定是最优的。确定目标和约束是解决优化问题的第一步。

使用 python 解决优化问题

让我们解决 Python 中的优化问题。主要有三种优化:

  • 线性优化

这是从一组参数中寻找**可能解决方案的过程。

  • 整数优化

当问题中涉及的参数多于一个并且涉及整数或布尔参数时,那么它就变成了可通过整数优化来解决的问题。

  • 约束优化

如果问题涉及一个非常大的参数集,并且需要从这个大的约束集中找到解决方案,那么它就变成了一个约束优化问题。

下面是一个最大化问题的例子,它将通过使用整数优化来解决。

最大化问题是一种整数优化问题,其中为某些参数提供约束,并且通过将这些约束转换成线性方程然后求解它来计算可行解。我们将找出下面等式的可行解。

等式是:3a+6b+2c <= 50

4a- 6b + 8c <= 45

3a+b–5c < = 37

这里我们需要最大化 3a + 2b + 2*c

解决最大化问题的主要阶段:

建立和解决问题的基本程序在每种语言中都是相同的:

  • 导入您需要的库。
  • 做一个关于求解器的声明。
  • 变量和参数声明。
  • 标记将用于实现目标的方法。
  • 调用求解器并输出结果。
解决这个问题的基本步骤是:
进口
讯享网
求解器的声明
 

这是一种使用工具计算问题的方法。

SCIP:它是用于解决混合非线性问题的工具箱或工具的参数。

Pywraplp:因为 ortools 是基于 c++的,所以它需要一个包装器才能在 python 上工作。Pywraplp 就是那个包装器。

定义变量和约束
讯享网

约束将根据等式定义。例如,第一个等式 3a+6b+2c < = 50 将被定义为:

 

我们需要最大化的等式是 3a + 2b + 2*c。下面的代码显示了为该等式创建目标函数的步骤。

讯享网
 
讯享网

输出

 

在本文中,我们了解了不同类型的优化以及如何在 Python 中实现这些优化。我们还学习了 ortools 和 python 包装器。此外,我们看到了一个完整的工作代码,它最大化了一组三个线性方程中的一个方程。本文将有助于理解 python 中的优化,并为学习者打下基础。

https://developers . Google . com/optimization/introduction/python

https://developers.google.com/optimization/examples

原文:https://www.askpython.com/python/examples/orb-feature-detection

你好,各位程序员,在本教程中,我们将看到什么是 ORB 特征检测器以及我们如何用 Python 实现它。ORB 代表快速定向旋转简报

也可阅读:Python 中的图像阈值处理——简易快速指南

Oriented FAST and rotated BRIEF(ORB)是一种快速鲁棒的局部特征检测器,由 Ethan Rublee et al. 于 2011 年首次提出,用于物体识别或 3D 重建等计算机视觉任务。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sample Multiscaled Image Pyramid

ORB 使用了修改版的快速关键点检测器简短描述符。在这种情况下,快速特征不是比例不变和旋转不变的。为了使快速惊吓不变,我们使用一个多尺度金字塔。ORB 检测每一关的特征以获得更高的精确度。


当谈到 ORB 特征检测时,我们利用一些直接函数来读取图像,检测和计算 ORB 特征,然后将检测到的关键点绘制到图像中。

为了显示图像,我们使用了 OpenCV 库的旧的函数。代码如下,希望您清楚所采取的步骤。

讯享网

1.1 选择的原始图像

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Original Image Face Detection

1.2 特征检测后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ORB Face Detection Output Image


2.1 选择的原始图像

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Original Image Face Detection Image2

2.2 特征检测后

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ORB Face Detection Output Image2


如你所见,我们的模型检测到了主要特征。您也可以使用自己的个人图像尝试相同的算法。对模型的结果感到惊讶。希望你喜欢这个教程!

感谢您的阅读!

原文:https://www.askpython.com/python-modules/oshash-module

大家好!oshash 模块将在今天的教程中讨论。我们将探索如何将它融入我们的系统并加以利用。我们还将分析该方法与其他算法在性能方面的比较。接下来,我们将查看它的一些实例,以便更好地理解它。

那么,我们开始吧,好吗?


散列是使用函数或算法将对象数据映射到代表性整数值的过程。这是通过使用具有键值对的表来实现的。它通过散列函数绕过该值进行操作,散列函数返回一个与该值对应的密钥,也称为散列密钥/散列码。然后,整数哈希代码被映射到我们拥有的固定大小。

由此我们可以得出结论,散列函数是可以用来将可变大小的数据转换成固定大小的值的任何函数。哈希值、哈希代码或简单的哈希是哈希函数返回的值。现在我们已经对散列有了基本的了解,我们可以继续学习模块" oshash "


虽然有各种有效的算法,但“T0”Oshash 探索了一些不同的技术来实现散列。与其他算法相比,它的主要目的是在其他算法落后时获得好的速度。

使它们变得迟缓的主要缺点是它们一次读取整个文件,这对于“oshash”是不推荐的。相反,它逐段读取文件。

然而,我们不必担心它的内部操作或散列函数。我们将更多地关注它的应用。让我们从安装开始,然后再看例子。

安装 Oshash 模块

我们可以使用 pip 和以下命令来安装它。

 

所以,一旦我们完成了安装,让我们看看如何把它投入使用。

我们可以通过两种方式利用它:第一种是在我们的程序文件中,第二种是通过命令行界面。让我们来看一个例子。在这两种情况下,它都返回一个散列文件。

程序文件的语法

讯享网

命令行界面的语法

 

虽然我们在前面的例子中没有看到任何这样的技术,但是在后台创建了一个散列,如下面的语法所示。

讯享网

恭喜你!您刚刚学习了 Python 中的 Oshash 模块。希望你喜欢它!😇

喜欢这个教程吗?无论如何,我建议你看一下下面提到的教程:

  1. xlrd 模块——如何在 Python 中处理 Excel 文件?
  2. pyzbar 模块:用 Python 解码条形码
  3. Python HTTP 模块–您需要知道的一切!
  4. Python 制表模块:如何在 Python 中轻松创建表格?

感谢您抽出时间!希望你学到了新的东西!!😄


原文:https://www.askpython.com/python/examples/palindrome-in-python

今天我们要学习回文系列,以及如何在 Python 中实现和识别回文。所以让我们开始吧!

一个数被定义为一个回文数,如果它从向前和向后读完全相同。疯狂的是,它不仅仅对数字有效。即使一个字符串前后读起来一样,它也是一个回文!

让我们看一些例子来更好地理解它。

1.回文数字

让我们考虑两个数字: 和 。

第一个数字 ,向前和向后读都是同一个数字。因此它是一个回文数。

另一方面, ,倒着读的时候是 肯定和原数不一样。因此,它不是一个回文数。

2.回文字符串

为回文数字解释的逻辑也适用于字符串。让我们考虑两个基本字符串:aba 和 abc。

字符串 aba 无论怎么读都是一样的(向后或向前)。但是另一方面,向后读取字符串 abc 会导致 cba 与原始字符串不同。

因此 aba 是一个回文,而 abc 不是。

1.回文数字

为了检查一个数是否是回文数,我们首先获取该数的输入,并创建一个作为输入的该数的副本。

然后,我们创建一个新变量来存储反转后的数字,并用 0 初始化它。

使用 mod 10 和除以 10 运算遍历数字,并在每个循环中确保将数字添加到反转的数字变量*10 中。

2.回文字符串

为了检查字符串,我们将一个字符串作为输入,计算它的长度。我们还初始化一个空字符串来存储字符串的反码。

我们创建一个递减循环,从最后一个索引开始,到第一个索引,每次都将当前反转的字符串与获得的新字母连接起来。

1.回文数字

 

2.回文字符串

讯享网

现在你知道了什么是回文,以及在字符串和数字的情况下如何处理它们,让我给你看两者的代码。

1.回文实现:数字

让我们使用 Python 来检查回文数字。

 

2.回文实现:字符串

现在让我们检查 Python 中的回文字符串

讯享网

回文数字

 

回文字符串

讯享网

恭喜你!今天在本教程中,你学习了回文以及如何实现它们!希望你学到了一些东西!感谢您的阅读!

原文:https://www.askpython.com/python-modules/pandas/pandas-conversion-functions

读者朋友们,你们好!在本文中,我们将关注 Python 中的 4 个重要的熊猫转换函数。

所以,让我们开始吧!

在本主题的过程中,我们将在示例中使用自行车租赁计数预测数据集。你可以在这里找到数据集。


1。Pandas astype()函数

在 Pandas 模块中最常用的 Pandas 转换函数是 astype() 函数。

使用 astype()函数,我们可以轻松地将变量的数据类型从一种类型转换为另一种类型。因此,数据变量之间的相互转换变得容易。

举例:

在这个例子中,首先,我们使用 dtypes 对象检查 dataset 变量的数据类型。

 

变量的数据类型:

讯享网

除此之外,我们现在尝试使用 astype()函数将变量 season 的数据类型从整数更改为类别。

整数到类别的转换—

 

输出:

讯享网

2。熊猫 isna()函数

说到数据分析和预处理,对我们来说,研究数据并提取出有意义的信息是非常重要的。检查空值的存在似乎是建模和转换之前的一个重要步骤。

使用 isna() 函数,我们可以很容易地检查空值的存在,如果有的话。这是一个布尔函数,如果它在列或数据集中检测到任何空值,则返回 TRUE。

举例:

在此示例中,isna()函数返回 false,因为它在数据集中遇到零缺失值或空值。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Conversion Functions


3。Python notna()函数

使用 Python notna()函数,我们可以很容易地分离和查找不等于 NULL 或 na 的值。也就是说,如果 notna()函数检测到非空值的存在,它将返回 TRUE。

举例:

在下面的示例中, notna() 函数返回 TRUE,因为它在整个数据集中没有检测到任何空值。

讯享网

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Conversion Functions Non Missing Values


4。Python dataframe.copy()函数

当涉及到操作数据集时,拥有原始数据的备份作为进行更改的备用副本对我们来说非常重要。这也有助于我们回滚到最初的情况,以防操纵不起作用。

举例:

在本例中,我们使用 copy() 函数创建了数据帧‘df ’,它保存了由 BIKE 对象表示的数据集的副本。

 

输出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pandas Copy Dataframe


至此,我们已经结束了关于 Python 转换函数的主题。如果你遇到任何问题,欢迎在下面评论。

更多与 Python 编程相关的帖子,敬请关注我们!

在那之前,学习愉快!🙂

原文:https://www.askpython.com/python-modules/pandas/pandas-dataframe-mean

在本文中,我们将计算 Python pandas 中的数据帧平均值。Python 被广泛用于数据分析和处理。所以一般来说 python 是用来处理庞大且未分类的非正式数据的。为了从我们现有的数据中获得有意义的信息,我们使用统计概念,如均值、中值和众数。这些概念有助于我们对数据进行适当的分类和建模,以便提出一个非常有效的模型。

Mean 基本上是我们数据集的平均值。对于一个数据集,算术平均值,也称为算术平均值,是一组有限数字的中心值:具体来说,是值的总和除以值的个数。平均值由以下公式给出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

| 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 | = | 等差中项 |
| 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 | = | 值的数量 |
| 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 | = | 数据集值 |

我们在 pandas 中有一个内置的均值函数,可以用在我们的数据框对象上。为了使用 mean 函数,我们需要在代码片段中导入 pandas 库。现在让我们理解均值函数的基本语法和性质

mean 函数在应用于系列时将返回系列的平均值,在应用于 dataframe 对象时,将返回 dataframe 中所有系列的平均值列表。现在让我们理解均值函数的语法和参数。

DataFrame.mean(axis=None,skipna=None,level=None,numeric_only=None,kwargs)

  • :取值可以是 0,也可以是 1。默认值为 0,表示索引/行轴。
    当轴= 0 时,该功能应用于索引轴和
  • 当 axis = 1 时,它应用于列。
  • skipna: 计算结果时排除所有空值。
  • 级别:与特定级别一起计数,如果轴是多指标(分层),则折叠成一个系列。
  • numeric_only: 只包含 int、float、boolean 列。如果没有,它将尝试使用所有数据,然后只使用数字数据。未针对系列实施。
  • kwargs: 要传递给函数的附加关键字参数。

返回系列或数据帧的平均值。

既然我们已经熟悉了函数的语法和参数,现在让我们通过一些例子来理解函数的工作原理。

讯享网
 

我们可以看到,平均值是为数据帧的每一行/索引计算的

讯享网

 

这里我们可以看到,平均值是为每一列计算的。

在下一个例子中,我们将看到如何将均值函数应用于数据帧中的特定序列。

讯享网

上面的代码将打印数据帧中第一个索引轴的平均值。

 

这里我们可以验证输出是一个标量值,它是 df[0] = {4,3,4,2}的平均值。即(4+3+4+2)/3 = 3.25

通过本文,我们了解了 mean()函数在熊猫图书馆中的用途和应用。

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mean.html

小讯
上一篇 2025-04-27 21:10
下一篇 2025-05-07 17:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/158122.html