20234212童德昌 实验四《Python程序设计》实验报告

20234212童德昌 2024-05-28 22:18:41

# 20234212  2022-2023-2 《Python程序设计》综合实践

课程:《Python程序设计》
班级: 2342
姓名: 童德昌
学号:20234212
实验教师:王志强
实验日期:2024年4月22日
必修/选修: 公选课

## 1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。

## 2. 实验过程及结果

1.安装必要的Python库

我们需要安装pytesseract库来进行OCR识别,以及pandasopenpyxl库来操作Excel文件。此外,还需要安装PILPillow库来处理图片。

2.配置Tesseract路径

我们需要额外安装Tesseract OCR引擎,并指定Tesseract的安装路径,以便pytesseract库能够找到它。

 3.加载图片并进行OCR识别

使用PILPillow库加载图片,然后使用pytesseract进行文字识别。

 4.数据清洗与整理

提取出的文本可能包含不需要的信息,如换行符、空格等。你可能需要对其进行清洗和格式化,以便将其转换为结构化的数据。

 5.将数据填入Excel

使用pandas库创建一个DataFrame,然后将清洗后的数据填入DataFrame,并保存到Excel文件中。

6.创建主文件

通过main()函数的使用,使得程序逻辑通畅。

7.运行与结果

被截取图片:

  结果:

 

##3.问题

1.对于该技术不了解

通过上网查阅资料与案例加深理解。

2.报错:‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape

查阅资料,发现在文件夹中复制地址时,文件夹中的地址是用  \ 来分隔不同的文件夹,而Python识别地址时只能识别用 / 分隔的地址。通过在字符串前加上rR解决。

具体解决方法为:image_path = r'C:\Users\tdc\Pictures\Screenshots\屏幕截图 2024-03-19 191146.png'

3.代码运行后,控制台未显示提取的文本

未添加打印输出的语句print()。

具体解决方法为:print("Cleaned Text:", cleaned_text)

4.运行后未截取中文

Tesseract-OCR 安装时,未加载识别中文所需的语言数据。经过重新安装后仍未解决。通过AI工具查找问题,发现未指定中文。

具体解决方法为:text = pytesseract.image_to_string(img, lang='chi_sim')

## 源代码

from PIL import Image
import pytesseract
import pandas as pd

pytesseract.pytesseract.tesseract_cmd = r'D:\学习\大一下\Python选修\Tesseract-OCR\tesseract.exe'


def extract_text_from_image(image_path):
    image = Image.open(image_path)
    text = pytesseract.image_to_string(image, lang='chi_sim')
    return text


def clean_text(text):
    cleaned_text = text.replace(r'\n', ' ').strip()
    print("Cleaned Text:", cleaned_text)
    return cleaned_text


def main():
    image_path = r'C:\Users\tdc\Pictures\Screenshots\屏幕截图 2024-03-19 191146.png'
    extracted_text = extract_text_from_image(image_path)
    cleaned_data = clean_text(extracted_text)

    df = pd.DataFrame([cleaned_data], columns=['Extracted Data'])
    with pd.ExcelWriter('output.xlsx', engine='openpyxl') as writer:
        df.to_excel(writer, sheet_name='Sheet1', index=False)


if __name__ == "__main__":
    main()

## 4.资料(部分)

(1)CSDN:Python报错:‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UXXXXXXXX escape                                            链接:Python报错:‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UXXXXXXXX escape-CSDN博客

(2)CSDN:Tesseract-OCR下载和安装,Python-OCR使用                                                                                                                                            链接:Tesseract-OCR下载和安装,Python-OCR使用_tesseract-ocr python 下载-CSDN博客

(3)天工AI:问题3、4的完全解决。

## 5.实验感想

这次实验相较于前三次实验,难度提升了不止一个档次,在做这次实验时,我时常需要查阅资料,但当我将其一点点的搭建起来时,一种成就感油然而生。事实上,本次实验既是对我们本学期所学的综合性检测,也是让我们实践自身所学与能力的平台。就我而言,这次实验加深了我对于Python的实用性的认识,也体会到以Python为代表的编程是如何改变我们的学习与生活。

## 6.结课感想

不知不觉,一个学期临近尾声,我依稀还记得,在选修Python时那种好奇与期待,但经过12周的学习后,我发现Python的学习并不如我所料想得一帆风顺,而是有重重风浪阻碍着我的前进。但所幸,Python的学习是一个渐进的过程,在期间,有数个“岛屿”可供我们暂时停靠修整,以便更好在学海中遨游。而更为幸运的是,有王志强老师这样优秀且具备耐心的好老师在托举着挣扎于学海的我们,无论我们有什么样的学习问题,都可以向他求助,并且能得到详尽而又生动的回答。或许在未来的某一天,我们已经忘记Python课上的具体内容,但对于Python的那份探求之情铭记于心。

至于建议,我希望能够自编新教材,统一购买的教材使用率还是太低了。同时,可以增加课堂上的互动频率,避免部分学生未能跟上进度。

...全文
312 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕《【卫星信号】模拟卫星信号传播研究(Matlab代码实现)》这一技术资源展开,系统介绍了利用Matlab进行卫星信号传播过程建模与仿真的方法。该资源聚焦于构建卫星信号在复杂空间环境中的传播模型,综合考虑自由空间路径损耗、大气吸收、多径效应、多普勒频移、电离层闪烁及噪声干扰等多种物理因素,通过Matlab编程实现信号传输特性的动态仿真与可视化分析,帮助研究人员深入掌握卫星通信信道的关键特性与建模流程。; 适合人群:具备Matlab编程能力和通信原理基础知识的高校研究生、科研机构研究人员及从事卫星通信、导航定位、遥感遥测等领域的工程技术人员,特别适用于需要完成相关课题仿真、毕业设计或项目开发的初级与中级科研人员。; 使用场景及目标:①用于教学与课程设计中加深对卫星信号传播机制的理解;②支撑卫星通信系统链路预算、接收机灵敏度分析与抗干扰算法设计;③服务于学术论文撰写、科研项目申报中的仿真验证环节,提供可复用的代码框架与建模思路。; 阅读建议:建议读者结合经典通信理论教材同步学习,重点剖析代码中关于信号调制、信道建模、噪声叠加与接收端解调等模块的实现逻辑,动手运行并调整轨道参数、频率、环境条件等变量,观察信号质量变化,从而深化对卫星信道动态行为的认知。
内容概要:本文系统介绍了2024年最新提出的两种智能优化算法——青蒿素优化算法与霜冰优化算法(RIME),并通过Matlab代码实现对二者进行了深入对比研究。文档不仅阐述了两种算法的核心原理与数学模型,还全面展示了其在电力系统优化、新能源调度、路径规划、机器学习参数调优等复杂工程问题中的应用性能差异。文中涵盖了微电网调度、电动汽车充电优化、无人机三维路径规划、风光互补制氢系统调度等多个前沿科研方向的典型案例,并配套提供了完整的Matlab仿真代码与模型资源,便于读者复现高水平学术论文成果并开展创新性研究。; 适合人群:具备一定编程基础,熟练掌握Matlab/Simulink环境,正在从事智能优化算法相关研究的研究生、高校教师及工程技术人员,尤其适用于专注于能源系统优化、智能交通、智能制造、自动化控制等领域的科研工作者。; 使用场景及目标:①深入理解青蒿素算法与RIME算法的基本思想、迭代机制与收敛特性;②通过实际代码复现EI、顶刊级别论文中的优化模型;③在具体科研项目中对比两类算法的寻优能力、稳定性与计算效率,完成算法选型与改进;④拓展新型优化算法在多能互补系统、智能路径规划、分布式调度等交叉学科中的创新应用。; 阅读建议:建议读者结合网盘提供的完整代码资源,按照文档中给出的应用实例循序渐进地实践操作,重点关注不同场景下的参数设置策略、算法收敛曲线分析与鲁棒性表现,同时关注公众号“荔枝科研社”获取持续的技术支持与更新资料。

93

社区成员

发帖
与我相关
我的任务
社区描述
Python程序设计作业
软件构建 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧