掌握计算机自动化:Pyperclip与CnOCR详细教程(最全使用方法,每行代码都有注释,帮你解决与之有关的所有问题)

简介: 掌握计算机自动化:Pyperclip与CnOCR详细教程(最全使用方法,每行代码都有注释,帮你解决与之有关的所有问题)

在这个信息化快速发展的时代,高效的信息处理变得尤为关键。Python,作为一门强大的编程语言,其灵活性以及多样的库函数,使其成为处理信息不可或缺的利器。在此背景下,我决定分享我对其中两个实用Python库——Pyperclip和CnOCR的理解和使用,以帮助大家在日常工作和学习中提高效率。

首先,我们将会详细探讨Pyperclip,这是一个简洁高效的跨平台剪贴板库,让我们可以轻松地在Python代码和系统剪贴板之间传输文本数据。随后,我们将介绍OCR技术及其在Python中的应用,尤其是CnOCR库的强大功能,它使我们能够从各种类型的图像中识别出文字信息。

希望通过我的分享,你们可以发现Python更多的可能性,并将其应用到创造性和生产性工作中。让我们一起开启这一串联计算机视觉与自动化办公的探索之旅吧!

一、Pyperclip概念

Pyperclip 是一个用于复制和粘贴文本的 Python 库。它允许用户在剪贴板之间传输数据,并支持多种数据类型,如文本、二进制数据等。Pyperclip 可以在 Windows、macOS 和 Linux 等操作系统上使用,并且具有跨平台兼容性。 使用 Pyperclip,你可以轻松地将文本从屏幕上复制到剪贴板,或将文本从剪贴板粘贴到屏幕上。

要使用Pyperclip,请在控制台输入以下指令:

pip install pyperclip

二、Pyperclip基础语法

#copy:将文本复制到剪贴板
pc.copy("Hello World")
pc.copy("你好")
#paste:从剪贴板获取文本
pc.copy("你好")
re_copy = pc.paste()
print(re_copy)

三、Pyperclip与文件交互

本文展示了两种文件展开方式:

#与文件交互,从剪切板上获取内容,写到文件中
f=open("E:\测试.txt","w",encoding="utf-8")
f.write(pc.paste())
#与文件交互,从文件上获取内容,写到剪切版中
with open("test.txt","r",encoding="utf-8") as f:
    pc.copy(f.read())
    print(pc.paste())

四、Pyperclip生成随机密码

#生成随机密码
import random
#popuration:从总体中随机抽取一个样本
#k:从总体中随机抽取k个样本
re_password = "".join(random.sample("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",8))
pc.copy(re_password)
print(re_password)

五、OCR概念

OCR(Optical Character Recognition,光学字符识别)是一种通过计算机分析扫描得到的图像以识别汉字、英文和数字等字符的技术。OCR 技术被广泛应用于金融、教育、安防等领域。

本专栏选用CoOCR

官网:https://cnocr.readthedocs.io/zh/latest/

六、CnOCR 基础识别

# 导入CnOcr类
from cnocr import CnOcr
# 设置图像路径
img_fp=r"E:\b.webp"
# 创建CnOcr对象
ocr = CnOcr()
# 读取图像
out = ocr.ocr(img_fp)
print(out)
#返回列表类型[{},{}]

七、CnOCR 不同图片识别

#单排文字图片识别
img_fp=r"E:\b.webp"
ocr = CnOcr()
out = ocr.ocr(img_fp)
for line in out:
    print(line)
#多排简单文字图片识别
img_fp=r"E:\simple2.png"
ocr = CnOcr(det_model_name='naive_det')
out = ocr.ocr(img_fp, cls=True)
print(out)
#竖排文字图片识别
img_fp=r"E:\vertical.jpg"
ocr = CnOcr(rec_model_name='ch_PP-OCRv3')
out = ocr.ocr(img_fp, cls=True)
print(out)
#多行文字图片识别
img_fp=r"E:\multi.jpg"
ocr = CnOcr(rec_model_name='ch_PP-OCRv3')
out = ocr.ocr(img_fp, cls=True)
print(out)
#繁体字识别
img_fp=r"E:\繁体字.jpg"
ocr = CnOcr(rec_model_name='ch_PP-OCRv3')
out = ocr.ocr(img_fp, cls=True)
print(out)
#英文识别
img_fp=r"E:\en.jpg"
ocr = CnOcr(rec_model_name='‘en_gpr_server_v2.0’')
out = ocr.ocr(img_fp, cls=True)
print(out)
#多语言识别
img_fp=r"E:\multi_language.jpg"
ocr = CnOcr(rec_model_name='multi_language_lite_train')
out = ocr.ocr(img_fp, cls=True)
print(out)

相关文章
|
2天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
13 5
|
5天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
24 6
|
3天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
11 2
|
7天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
22 4
|
8天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
【7月更文挑战第8天】这篇教程介绍了如何使用Logback将Java应用的日志输出到文件中。首先,通过创建`logback.xml`配置文件,设置`FileAppender`来指定日志文件路径和格式。然后,提供了一个`RollingFileAppender`的例子,用于每日生成新的日志文件并保留一定天数的历史记录。文中包含配置文件的XML代码示例,并展示了控制台输出和生成的日志文件内容。教程最后提到了一些可能遇到的问题及解决建议。
15 0
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
|
9天前
|
Java 关系型数据库 测试技术
《手把手教你》系列基础篇(八十九)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-上篇(详解教程)
【7月更文挑战第7天】Apache Log4j2的安全漏洞促使考虑使用logback作为替代的日志框架。Logback由log4j创始人设计,提供更好的性能,更低的内存使用,并且能够自动重载配置文件。它分为logback-core、logback-classic(实现了SLF4J API)和logback-access(用于Servlet容器集成)三个模块。配置涉及Logger、Appender(定义日志输出目的地)和Layout(格式化日志)。
16 1
|
12天前
|
Java 测试技术 Apache
《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
【7月更文挑战第4天】Apache Log4j 是一个广泛使用的 Java 日志框架,它允许开发者控制日志信息的输出目的地、格式和级别。Log4j 包含三个主要组件:Loggers(记录器)负责生成日志信息,Appenders(输出源)确定日志输出的位置(如控制台、文件、数据库等),而 Layouts(布局)则控制日志信息的格式。通过配置 Log4j,可以灵活地定制日志记录行为。
29 4
|
4天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
【7月更文挑战第11天】页面对象模型(POM)通过Page Factory在Java Selenium测试中被应用,简化了代码维护。在POM中,每个网页对应一个Page Class,其中包含页面元素和相关操作。对比之下,非POM实现直接在测试脚本中处理元素定位和交互,代码可读性和可维护性较低。
|
10天前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十八)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-下篇(详解教程)
【7月更文挑战第6天】本文介绍了如何使用Log4j2将日志输出到文件中,重点在于配置文件的结构和作用。配置文件包含两个主要部分:`appenders`和`loggers`。`appenders`定义了日志输出的目标,如控制台(Console)或其他文件,如RollingFile,设置输出格式和策略。`loggers`定义了日志记录器,通过`name`属性关联到特定的类或包,并通过`appender-ref`引用`appenders`来指定输出位置。`additivity`属性控制是否继承父logger的配置。
16 0
|
11天前
|
XML Java 测试技术
《手把手教你》系列基础篇(八十七)-java+ selenium自动化测试-框架设计基础-Log4j 2实现日志输出-上篇(详解教程)
【7月更文挑战第5天】Apache Log4j 2是一个日志框架,它是Log4j的升级版,提供了显著的性能提升,借鉴并改进了Logback的功能,同时修复了Logback架构中的问题。Log4j2的特点包括API与实现的分离,支持SLF4J,自动重新加载配置,以及高级过滤选项。它还引入了基于lambda表达式的延迟评估,低延迟的异步记录器和无垃圾模式。配置文件通常使用XML,但也可以是JSON或YAML,其中定义了日志级别、输出目的地(Appender)和布局(Layout)。
17 0