Python基础与办公自动化(微课版)(AI协同)-课件汇 单元7-12 数据处理 - Python 教你玩转图像处理_第1页
Python基础与办公自动化(微课版)(AI协同)-课件汇 单元7-12 数据处理 - Python 教你玩转图像处理_第2页
Python基础与办公自动化(微课版)(AI协同)-课件汇 单元7-12 数据处理 - Python 教你玩转图像处理_第3页
Python基础与办公自动化(微课版)(AI协同)-课件汇 单元7-12 数据处理 - Python 教你玩转图像处理_第4页
Python基础与办公自动化(微课版)(AI协同)-课件汇 单元7-12 数据处理 - Python 教你玩转图像处理_第5页
已阅读5页,还剩214页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元7数据处理任务7.1导入Excel文件数据【任务目标】文件“data1.xlsx”中的工作表“Sheet1”保存了“唐宋八大家”的相关信息,使用pandas导入文件数据,并输出前3行数据。【任务实施】……7.1数据处理基础创建数据对象数据的基本运算数据处理相关的属性和方法数据的索引和切片数据的导入和导出安装pandas。在程序中,可使用以下命令导入pandas。pandas的Series对象和DataFrame对象是数据处理过程中两个重要的数据结构。Series对象也称“序列”,用于存储和处理一维数据,类似Excel二维表格中的一行或一列。Series对象由一组数据和与数据相关的索引组成,可以存储和处理整数、浮点数、字符串、Python对象等多种类型的数据。DataFrame对象也称“数据框”,用于存储和处理二维数据,类似Excel二维表格。DataFrame对象由一组数据以及与数据相关的行索引和列索引组成,可以存储和处理整数、浮点数、字符串、Python对象等多种类型的数据。7.1.1创建数据对象1.创建Series对象Series()方法用于创建Series对象,其基本语法格式如下。其中,相关参数说明如下。(1)data:数据,可以是标量、可迭代对象(如列表)、字典等。(2)index:索引,默认以0开始的整数作为索引。省略所有参数时,该方法将创建一个空Series对象。示例代码单击此处编辑母版文本样式第二级第三级第四级第五级2.创建DataFrame对象DataFrame()方法用于创建DataFrame对象,其基本语法格式如下。其中,相关参数说明如下。(1)data:数据,可以是字典、二维数组、Series对象、DataFrame对象或其他可转换为DataFrame对象的数据。省略此参数,则创建一个空DataFrame对象。(2)index:行索引,可以是列表、数组、索引对象等。省略此参数,则创建一个默认的整数索引。(3)columns:列索引,可以是列表、数组、索引对象等。省略此参数,则创建一个默认的整数索引。(4)dtype:指定数据的类型,可以是NumPy库中的数据类型,如64、np.float64等。省略此参数,则根据数据自动推断数据类型。(5)copy:指定是否复制数据,默认值为False,表示不复制数据。如果设置为True,则复制输入的数据。示例代码7.1.2数据的基本运算Series对象和DataFrame对象支持各种数据运算,示例代码如下。7.1.3数据处理相关的属性和方法1.Series对象的常用属性和方法2.DataFrame对象的常用属性和方法7.1.4数据的索引和切片Series对象和DataFrame对象支持索引和切片,通过索引可访问和修改元素。1.访问和修改Series对象元素2.访问和修改DataFrame对象元素7.1.5数据的导入和导出1.导入数据pandas常用的数据导入方法如下。(1)read_csv():导入CSV文件。(2)read_table():导入分隔符分隔的文件,默认分隔符为制表符“\t”。(3)read_excel():导入Excel文件。(4)read_json():读取JSON文件。(5)read_sql():从SQL数据库读取数据。(6)read_html():从HTML文件中读取表格数据。这些方法的用法类似,2.导出数据to_excel()方法可以将数据导出到Excel文件,示例代码如下。导出的“output1.xlsx”工作簿数据如图7-1所示。DataFrame对象的列索引作为Excel表格的列名,行索引作为第1列数据(该表格第1列第1行数据为空)。可以将数据导出到多个工作表,示例代码如下。to_csv()方法可以将数据导出到CSV文件,示例代码如下。任务7.2成绩排序【任务目标】文件“data1.xlsx”中的工作表“Sheet3”保存了成绩数据(包括学号、姓名、政治、数学、英语等列),使用pandas导入数据,计算成绩总分,并按总分从高到低排序。【任务实施】……7.2数据处理操作本节介绍pandas的数据处理功能,包括数据的清洗、筛选、排序、排名、合并、连接、分组统计、透视表创建以及绘图等操作。7.2.1数据清洗数据清洗指对数据中的无效值、重复值等进行处理。1.处理无效值在导入数据时,pandas将n/a、NA、空值当作无效数据,用NaN表示。文件“data2.xlsx”中包含多个无效值,如图7-3所示。导入文件“data2.xlsx”中的数据,示例代码如下。除了默认处理的无效值,上述导入数据中的8t、-也属于不符合要求的无效值。可以在导入时,使用na_values参数指定需要额外处理的无效值,示例代码如下。可以使用isnull()方法判断数据中的元素是否属于无效值,示例代码如下。dropna()方法可以删除包含无效值的行,示例代码如下。fillna()方法可以用指定值替换无效值,示例代码如下。2.处理重复值可以使用duplicated()方法和drop_duplicates()方法处理重复数据。duplicated()方法用于检测是否存在重复数据,若存在重复数据,则返回True,否则返回Falsedrop_duplicates()方法用于删除重复数据。示例代码如下。7.2.2数据筛选DataFrame对象可以按行(列)索引筛选数据,也可以按条件筛选数据。1.按行(列)索引筛选数据loc属性可按标签索引返回数据,其基本语法格式如下。行(列)标签可以是单个值,也可以是用列表表示的多个值。省略列标签时,包含所有列。使用数字索引时,数字也作为标签。前面介绍过使用数字索引访问和修改元素的方法,下面介绍使用标签索引访问元素的方法示例代码2.按条件筛选数据可以使用表达式、query()方法、isin()方法等多种方式按条件筛选数据示例代码如下。7.2.3数据排序和排名1.数据排序sort_values()方法用于数据排序,其基本语法格式如下。其中,相关参数说明如下。(1)by:排序列名,可以是单个字符串或字符串列表。(2)ascending:默认值为True,表示按升序排序;设置为False,表示按降序排序。指定多个排序列名时,可在ascending参数中用True/False列表设置各个列的升降序排序。(3)inplace:默认值为False,表示不修改原DataFrame对象;设置为True,表示修改原DataFrame对象。2.数据排名rank()方法用于数据排名,其基本语法格式如下。其中,相关参数说明如下。(1)method:各列的排名方式,默认为average(相同数据排名取平均值),还可以是min(相同数据排名取最小值)、max(相同数据排名取最大值)、first(相同数据排名按出现的顺序取值)、dense(类似min)。(2)ascending:默认值为True,表示按升序排名;设置为False,表示按降序排名。7.2.4数据合并和连接1.按行(列)合并数据concat()方法用于按行(列)合并数据,其基本语法格式如下。其中:参数data1和data2是两个DataFrame对象;参数axis默认值为0,表示按行合并,值为1表示按列合并。concat()方法返回包含合并数据的新DataFrame对象2.按索引或列连接数据merge()方法用于按索引或列连接数据,其基本语法格式如下。其中:参数left为连接中的左侧DataFrame对象(左表),参数right为连接中的右侧DataFrame对象(右表),参数how为连接方式,参数on为连接使用的索引或者列名(值为None时,自动按相同列名进行连接)。连接方式分为以下几种。(1)left:类似SQL中的“左外连接”,包含左表中的全部数据,右表中无对应值时用NaN代替。(2)right:类似SQL中的“右外连接”,包含右表中的全部数据,左表中无对应值时用NaN代替。(3)inner:默认方式,类似SQL中的“内部连接”,仅包含左表和右表在on指定的索引或列上取值相等的记录。(4)outer:全连接,包含左表和右表的全部数据,无对应值时用NaN代替。7.2.5数据分组统计groupby()方法和聚合函数用于实现数据分组统计。groupby()方法的基本语法格式如下。其中,参数by是作为数据分组依据的列名。常用的聚合函数如下。(1)sum():求和。(2)count():计数。(3)mean():求平均值。(4)max():求最大值。(5)min():求最小值。7.2.6数据透视表创建pivot_table()方法用于创建数据透视表,其基本语法格式如下。其中,相关参数说明如下。(1)data:DataFrame对象。(2)values:单个的列名或者列名列表,指定执行统计的列。(3)index:单个的列名或者列名列表,指定行索引。(4)columns:单个的列名或者列名列表,指定列索引。(5)aggfunc:单个函数或者用字典格式指定的多个函数,指定统计类型,默认为mean(求平均值)。7.2.7数据绘图pandas绘图依赖于Matplotlib的pyplot模块,可以简单地绘制出常用的统计图形。DataFrame对象的plot()方法可以实现常用的绘图操作,其基本语法格式如下。其中,相关参数说明如下。(1)kind:图表类型,默认为line(折线图),还可以是bar(垂直柱状图)、barh(水平柱状图)、hist(直方图)、box(箱线图)、kde(kerneldensityestimation,核密度估计图)、area(面积图)、pie(饼图)、scatter(散点图)、hexbin(六边形箱图)等。(2)x:x轴数据列名或索引,默认值为None。(3)y:y轴数据列名或索引,可以是单个的列名或列名列表,默认值为None。(4)title:图表标题,默认值为None。(5)grid:是否显示网格,默认值为None。【综合实例】Excel文件数据合并文件夹“datas”中有若干个保存了“年级”“层次”“专业名称”“人数”“录取线”等数据的Excel文件,编写一个程序将所有文件合并到一个新文件中。THANKYOU单元8Python教你玩转Excel文件

任务8.1将数据存入Excel文件【任务目标】文件“data1.txt”中保存了“唐宋八大家”的相关信息(包括姓名、朝代、代表作),编写一个程序,使用xlwings库,将这些数据存入一个Excel文件。【任务实施】……8.2管理工作簿创建工作簿打开工作簿管理工作簿8.2.1创建工作簿创建工作簿包含下列几个步骤:打开Excel程序、新建工作簿、保存工作簿、关闭工作簿、退出Excel程序等。上述代码中,第3行创建一个Excel程序实例,并新建一个工作簿,也可以调用app.books.add()方法新建工作簿(见知识点8.1.2中的示例代码)。第5行调用了工作簿对象(单个Excel文件对应的对象,代表一个具体的工作簿)wb的save()方法完成文件保存操作。在调用save()方法执行保存操作时需注意下列情况。(1)使用参数指定文件名时,按指定文件名保存工作簿。(2)省略参数时,按当前文件名保存工作簿。如果新建工作簿还没保存到文件,则在Python程序所在目录中使用默认文件名(如“工作簿1.xlsx”)完成保存操作。(3)工作簿保存到文件时,目录中的同名文件直接被覆盖,没有提示。还可以调用xw.Book()方法创建工作簿,示例代码如下。8.2.2打开工作簿工作簿集合对象(当前所有已打开工作簿的集合,是工作簿对象的容器)的open()方法可用于打开工作簿,示例代码如下。使用app.books.open()方法打开指定的工作簿时,如果该工作簿已经被打开,则以只读方式打开工作簿副本。也可以使用xw.Book()方法打开工作簿,示例代码如下。xw.Book()方法首先在已打开的Excel程序实例中查找指定工作簿,如果工作簿已经打开,则直接返回对应的工作簿对象,否则就创建Excel程序实例并打开工作簿。8.2.3管理工作表1.添加工作表一个工作簿中通常包含多个工作表,工作簿对象的sheets属性用于返回工作表集合对象(单个工作簿中所有工作表的集合,是工作表对象的容器),工作表集合对象的add()方法可用于添加工作表,示例代码如下。wb.sheets.add()方法默认将添加的工作表放在活动工作表之前(添加的工作表成为活动工作表),可使用after或before参数指定添加的工作表的位置,示例代码如下。2.选择工作表工作表集合对象可使用工作表的名称或者位置来选择工作表,示例代码如下。3.复制工作表工作表集合对象的copy()方法可用于复制工作表,示例代码如下。未指定参数时,copy()方法在当前工作簿中复制工作表,并将复制的工作表放在所有工作表之后,复制的工作表的默认名称为“原工作表名称(2)”。参数name用于指定复制的工作表的名称,参数after用于指定复制的工作表的位置,参数after应该是一个工作表集合对象,可以是当前工作簿或另一个工作簿中的工作表。4.删除工作表工作表集合对象的delete()方法用于删除工作表,示例代码如下。5.修改工作表名称工作表集合对象的name属性可用于获取或者修改工作表名称,示例代码如下。任务8.3合并学生名单【任务目标】文件夹“test8_17”中有多个学生名单Excel文件,每个文件中都只有一个工作表,工作表包含“年级”“层次”“专业名称”“录取人数”“录取线”等列,编写程序,将所有学生数据合并到一个工作表中。【任务实施】……8.3读写工作表读工作表写工作表删除数据导出数据8.3.1读工作表xlwings库的range对象表示单元格区域,通过它可完成各种数据读取操作。1.读取单个单元格数据读取单个单元格数据的基本语法格式如下。示例代码如下。2.读取单元格区域数据读取单元格区域数据的基本语法格式如下。示例代码如下。3.以扩展方式读取数据range对象的expand()方法可指定以扩展方式读取工作表数据,其基本语法格式如下。上述语法表示从指定单元格开始,按参数mode指定的方式读取数据,并将其存入变量var。参数mode可以为right(向右扩展读取行)、down(向下扩展读取列)或table(默认值,向右和向下同时扩展读取行和列)。示例代码4.读取已使用单元格区域数据工作表集合对象的used_range用于返回已使用的单元格区域,使用它可获取工作表中的全部数据示例代码如下。8.3.2写工作表1.按行写入数据按行写入数据的基本语法格式如下。上述语法表示从指定单元格开始,按行将data中的数据写入工作表。data可以是单个值或者列表表示的多个值。data是单个值时,只在指定单元格中写入该值;data是列表时,依次将数据写入从指定单元格开始的多个相邻单元格中。如果data是嵌套的列表,则写入多行数据。示例代码2.按列写入数据按列写入数据的基本语法格式如下。参数transpose设置为True,表示按列将data中的数据写入工作表,示例代码如下。8.3.3删除数据xlwings库的sheet或range对象的clear()方法(删除数据和格式)和clear_contents()方法(仅删除数据)用于删除数据。1.删除单个单元格数据删除单个单元格数据的基本语法格式如下。示例代码如下。2.删除单元格区域数据删除单元格区域数据的基本语法格式如下。示例代码如下。3.以扩展方式删除数据与读取工作表数据类似,range对象的expand()方法可指定以扩展方式删除工作表数据,其基本语法格式如下。示例代码如下。4.删除工作表中的全部数据调用工作表集合对象的clear()方法和clear_contents()方法可删除工作表中的全部数据,示例代码如下。8.3.4导出数据工作表集合对象的to_html()方法和to_pdf()方法可分别将工作表数据导出到HTML文件和PDF文件,示例代码如下。任务8.4设置成绩表格式【任务目标】文件“data3.xlsx”中保存了学生成绩数据,使用xlwings库设置数据区域格式:奇数行背景颜色设置为浅灰,标题行文字设置为黑体、16号、加粗,其他行文字设置为仿宋、14号,自动调整行高和列宽、文字居中对齐,下边界设置为直线。【任务实施】……8.4设置工作表格式设置背景颜色设置行高和列宽设置边框设置对齐方式设置文字格式8.4.1设置背景颜色单元格对象range的color属性用于获取或者设置单元格背景颜色,其基本语法格式如下。其中:range_a1_color为保存颜色值的变量,range_a1为单元格对象new_color为颜色值。颜色值可以用RGB颜色值元组(r,g,b)表示,r、g、b取值范围为0~255,也可以用"#FF00FF"格式的字符串表示。示例代码8.4.2设置行高和列宽单元格对象

range

row_height

属性用于获取或者设置单元格行高,column_width属性用于获取或者设置单元格列宽,autofit()方法用于自动调整行高和列宽。8.4.3设置边框设置单元格或单元格区域的边框可以通过api属性访问底层的Excel对象模型来实现,其基本语法格式如下。其中,相关参数说明如下。(1)r:单元格或单元格区域对象。(2)edge:边框位置常量,常用值包括7(左边缘)、8(上边缘)、9(下边缘)、10(右边缘)、11(内部垂直边框)和12(内部水平边框)。(3)m:线型常量,常用值包括0(无边框)、1(实线)、2(点线)、3(短画线)、4(短点线)、5(长点线)、6(双线)和7(细线)。(4)n:宽度常量,常用值包括1(细线或发丝线)、2(细线)、3(中线)和4(粗线)。示例代码8.4.4设置对齐方式设置单元格或单元格区域的对齐方式可以通过api属性访问底层的Excel对象模型来实现,其基本语法格式如下。其中,相关参数说明如下。(1)r:单元格或单元格区域对象。(2)m:水平对齐方式常量,常用值包括1(常规对齐,默认)、4131(左对齐)、4108(居中对齐)、4152(右对齐)、5(填充)、4130(两端对齐)、7(跨列居中)和4117(分散对齐)。(3)n:垂直对齐方式常量,常用值包括4160(顶部对齐)、4108(居中对齐)、4107(底部对齐)、4130(两端对齐)和4117(分散对齐)。示例代码8.4.5设置文字格式设置单元格或单元格区域的文字格式可以通过api属性访问底层的Excel对象模型来实现,示例代码如下。【综合实例】创建年级录取人数折线图“test8_17”文件夹中有4个保存了年级、专业名称、录取人数和录取线等数据的Excel文件。使用xlwings库,根据文件中的数据,生成各年级的录取人数汇总数据,将年级作为x轴、录取人数作为y轴创建折线图。THANKYOU单元9Python教你玩转Word文档任务9.1创建会议邀请函【任务目标】李白故居是四川省江油市国家4A级景区,景区以李白的人生轨迹为主线,分为诗歌碑林园、清风明月园、登楼摘星园、陇西家风园等十二大园区。景区拟于近期召开旅游推荐会,编写一个Python程序,创建推荐会邀请函Word文档。【任务实施】……9.1Word文档写操作Word文档基本的写操作主要包括创建文档以及向文档添加文字、分页符、表格、图片等内容。9.1.1创建文档在Python程序中导入python-docx库时使用的名称为“docx”,库中的Document()函数用于创建表示Word文档的文档(Document)对象。利用文档对象可完成各种文档操作。未提供参数时,Document()函数会创建空白的新文档,指定参数时,则会打开指定的文档。示例代码如下。9.1.2添加文字添加文字包括添加标题、段落、文字块等。1.添加标题文档对象的add_heading(text,level)方法用于添加标题,参数text为标题文本,参数level为标题级别(取值范围为0~9,默认值为1)。2.添加段落文档对象的add_paragraph(text)方法用于添加段落,参数text为段落标题文本,方法返回创建的段落(Paragraph)对象。调用段落对象的insert_paragraph_before(text)方法可在段落之前插入新的段落。3.添加文字块段落对象的add_run(text)方法用于在段落中添加文字块,参数text为文字块的文本。9.1.3添加分页符文档对象的add_page_break()方法用于添加分页符,示例代码如下。9.1.4添加表格文档对象的add_table(rows,cols,style)方法用于添加表格,参数rows用于指定表格的行数,参数cols用于指定表格的列数,参数style用于指定表格的样式。9.1.5添加图片文档对象的add_picture(image_path_or_stream,width,height)方法用于添加图片,参数image_path_or_stream为图片路径或者包含图片的流对象,参数width用于指定图片宽度,参数height用于指定图片高度。省略width和height参数时,图片按原始尺寸显示;只指定width参数时,其作为缩放比例。任务9.2提取文档中的表格【任务目标】文档“test9_09.docx”中包含若干个表格,编写一个Python程序,将文档中的表格数据存入Excel文件,每个表格为一个工作表。【任务实施】……9.2Word文档读操作Word文档基本的读操作包括读取文档中的段落、文字块、表格和图片等内容。9.2.1读取段落文档对象的paragraphs属性用于返回一个包含段落对象的列表,每一个段落对象对应文档中的一个段落。段落对象的text属性用于返回段落包含的文本,style属性用于返回段落的样式。段落的样式为“Headingn”表示段落为标题(n为标题级别),样式为“Normal”表示段落为正文。9.2.2读取文字块段落中设置了字体、字号、颜色等各种样式的文字称为文字块。段落对象的runs属性用于返回一个包含文字块对象的列表,每一个文字块对象对应段落中的一个文字块。9.2.3读取表格文档对象的tables属性用于返回一个包含表格(Table)对象的列表,每一个表格对象对应文档中的一个表格。表格对象的columns属性用于返回包含表格所有列对象的列表,rows属性用于返回包含表格所有行对象的列表,cell()方法用于返回指定的单元格对象。9.2.4读取图片python-docx库没有提供从DOCX文件中读取图片的方法。DOCX文件本质上是一个ZIP压缩包,里面包含文档的所有资源,如文本、样式以及图片等。因此,可以通过解压DOCX文件来获取其中的图片。任务9.3自动调整文档样式【任务目标】编写一个Python程序,调整文档“test9_14.docx”样式,具体要求:1级标题为宋体、小三、加粗、1.5倍行距;2级标题为宋体、四号、加粗、1.5倍行距;正文首行缩进2个字符,中文用宋体,英文用TimesNewRoman字体,字号为小四,行距为20pt。【任务实施】……9.3Word文档样式设置操作Word文档基本样式包括字体样式、对齐样式、缩进样式、间距样式等,下面介绍对这些样式的设置操作。9.3.1设置字体样式文字块对象的font属性用于返回一个字体(Font)对象,字体对象用于访问文字块的字体样式。字体对象的常用属性如下。(1)bold:用于返回或设置文本是否以粗体显示。(2)color:用于返回一个ColorFormat对象,其rgb属性用于返回或设置文本颜色。docx.shared.RGBColor()方法用于生成颜色值。(3)italic:用于返回或设置文本是否以斜体显示。(4)name:用于返回或设置文本的字体名称。(5)size:用于返回或设置字号。docx.shared.Pt()方法用于生成字号值。(6)underline:用于返回或设置文本是否加下画线。9.3.2设置对齐样式段落的对齐样式包括左对齐、居中对齐、右对齐、两端对齐和分散对齐等

5种。段落对象的alignment属性用于访问对齐样式。docx.enum.text.WD_ALIGN_PARAGRAPH提供了多种表示对齐样式的常量值,具体如下。(1)LEFT:左对齐。(2)CENTER:居中对齐。(3)RIGHT:右对齐。(4)JUSTIFY:两端对齐。(5)DISTRIBUTE:分散对齐。9.3.3设置缩进样式段落的缩进样式包括首行缩进、悬挂缩进、左缩进和右缩进等。段落对象的paragraph_format属性用于返回一个段落格式(ParagraphFormat)对象,段落格式对象用于访问段落格式属性。段落格式对象有关缩进样式设置的属性如下。(1)first_line_indent:属性值为正时产生首行缩进,为负时产生悬挂缩进。(2)left_indent:左缩进。(3)right_indent:右缩进。9.3.4设置间距样式段落的间距样式包括行间距(行距)、段前间距和段后间距。可通过段落格式对象的下列属性来设置间距样式。(1)line_spacing:行距。整数表示固定行距,如Pt(10)(10磅)、Cm(10)(10厘米)等。浮点数表示行距为行高的倍数,如1.5表示行距为行高的1.5倍,即1.5倍行距。(2)line_spacing_rule:使用WD_LINE_SPACING枚举值来设置行距,如SINGLE表示单倍行距,DOUBLE表示双倍行距,ONE_POINT_FIVE表示1.5倍行距。(3)space_before:段前间距。(4)space_after:段后间距。【综合实例】生成录取通知书存档联(一)文档“test9_19.docx”保存了录取通知书存档联模板。编写一个Python程序,从文件“test9_19.xlsx”中读取录取信息,将学生的录取编号、姓名、性别、证件号码、专业名称依次填入模板中表格第2列的各行,将录取时间、总分依次填入模板中表格第4列的第4、第5行。最后,将录取照片插入文档末尾。录取照片保存在录取照片文件夹中,照片用学生的录取编号命名,如“20250001.jpg”。每个学生的存档联单独保存为一个Word文档,文档用学生的录取编号命名,如“20250001.docx”,并将其保存到存档联文件夹中。THANKYOU单元10Python教你玩转PPT文档任务10.1自动创建演讲PPT【任务目标】李白故居是四川省江油市国家4A级景区,景区以李白的人生轨迹为主线,分为诗歌碑林园、清风明月园、登楼摘星园、陇西家风园等十二大园区。景区拟于近期召开旅游推荐会,编写一个Python程序,创建推荐会演讲PPT。【任务实施】……10.1PPT文档写操作PPT文档基本的写操作包括创建PPT文档,幻灯片操作,添加文本框、段落、表格、图片和图表,以及自动创建PPT等内容。10.1.1创建PPT文档在Python程序中导入python-pptx库时使用的名称为“pptx”,库中的Presentation()函数用于创建表示PPT文档的演示文稿(Presentation)对象,利用演示文稿对象可完成各种PPT文档操作。示例代码如下。未提供参数时,Presentation()函数使用默认模板创建PPT文档,指定参数时,则打开指定的PPT文档。save()方法将PPT文档保存到指定的文件。10.1.2幻灯片操作幻灯片的基本操作包括添加幻灯片、复制幻灯片和删除幻灯片等。1.添加幻灯片演示文稿对象的add_slide()方法用于添加幻灯片,添加幻灯片时可使用布局来添加各种类型的幻灯片,如标题幻灯片、内容幻灯片和图片幻灯片等。(1)添加标题幻灯片标题幻灯片通常包含标题和副标题,对应布局slide_layouts[0]。示例代码如下。(2)添加内容幻灯片内容幻灯片包含标题和内容区域,对应布局slide_layouts[1]。示例代码如下。(3)添加图片幻灯片图片幻灯片适合展示图片,对应布局slide_layouts[5]。示例代码如下。2.复制幻灯片幻灯片通常由多个形状构成,python-pptx库没有提供直接复制幻灯片的方法,但可通过底层操作来复制幻灯片。普通形状(如文本框、图形等)对象的element属性用于返回表示形状的CT_Shape对象,可调用copy.deepcopy()方法复制CT_Shape对象,然后调用slide.shapes._spTree.insert_element_before()方法将其添加到新幻灯片中,从而完成形状的复制。对于图片,通过上述方法复制只能得到空白图片。可先将shape.image.blob表示的图片写入临时文件,然后将其添加到新幻灯片。示例代码3.删除幻灯片python-pptx库也没有提供直接删除幻灯片的方法,同样可通过底层操作来删除幻灯片。每张幻灯片都有一个唯一的rId(关系ID),用于标识它与其他资源的关系。在删除幻灯片时,首先需要调用presentation.part.drop_rel(rId)方法删除幻灯片的所有关系,然后调用del语句从slides._sldIdLst[]列表中删除幻灯片的底层XML节点。示例代码如下。10.1.3添加文本框不同版式的幻灯片包含相应的文本框,可以调用幻灯片的形状集合(Shapes)对象的add_textbox(left,top,width,height)方法为幻灯片添加其他的文本框。示例代码如下。还可以使用占位符为幻灯片添加文本。占位符(Placeholder)是预定义的区域,用于放置文本、图片、图表等内容。使用占位符可以确保内容在幻灯片上的位置和格式一致。示例代码如下。10.1.4添加段落段落属于文本框,一个文本框至少包含一个段落。可以调用文本框对象的add_paragraph()方法添加段落。示例代码如下。10.1.5添加表格幻灯片的形状集合对象的add_table()方法用于为幻灯片添加表格。示例代码如下。10.1.6添加图片幻灯片的形状集合对象的add_picture()方法用于为幻灯片添加图片。示例代码如下。10.1.7添加图表幻灯片的形状集合对象的add_chart()方法用于为幻灯片添加图表。示例代码如下。10.1.8自动创建PPT使用已有文档(如Word文档)自动创建PPT的基本步骤包括:分析文档段落样式、根据段落样式设计处理方案和实现处理方案。1.分析文档段落样式使用python-docx库读取Word文档中的段落时,段落对象的样式对象的name属性可用于返回样式名称,段落对象的text属性可用于返回段落中的所有文字。以“test10_14.docx”文档为例,分析文档段落样式的示例代码如下。2.根据段落样式设计处理方案根据“test10_14.docx”文档段落包含的样式,自动创建PPT的处理方案如下。第一步:依次读取Word文档中的段落,将每个段落的样式和文字作为一个子列表添加到列表paras中。第二步:处理Word文档中的图片,建立图片文件名列表,以便将图片添加到幻灯片。第三步:依次处理每个段落,根据段落样式添加幻灯片。(1)Heading1、Heading2、Heading3:每遇到一个Word文档标题则为PPT文档添加一张幻灯片,Word文档标题作为幻灯片标题,后继普通Word文档段落作为幻灯片文字内容。(2)Normal:普通Word文档段落,作为当前添加的幻灯片文字内容。(3)代码前后空行:作为文档中示例代码的开始和结束标志,以便读取一段连续的示例代码。每一段连续的示例代码作为一张新的内容幻灯片的文字内容。(4)代码无行号:示例代码。(5)图:Word文档中,图片的上一个段落总是包含“如图……所示”文字。在创建幻灯片时,可在添加的文字包含“如图”文字时,在其下方添加图片。(6)图编号:图编号添加到图片下方。3.实现处理方案根据“test10_14.docx”文档自动创建PPT的示例代码如下。任务10.2提取PPT文档中的表格【任务目标】文档“test10_16.pptx”中包含若干个表格,编写一个Python程序,将文档中的表格转换成Excel工作簿,每个表格为一个工作表。【任务实施】……10.2PPT文档读操作PPT文档基本的读操作包括读取文档中的文本、表格和图片等内容。10.2.1读取文本幻灯片中的文本都在文本框中,形状集合对象包含幻灯片中的所有形状对象。如果形状对象的has_text_frame属性值为True,说明该形状是一个文本框,此时形状对象的text属性用于返回文本框中的文本。示例代码如下。10.2.2读取表格幻灯片中的形状对象的has_table属性值为True时,说明该形状是一个表格,此时形状对象的table属性用于返回表格对象。示例代码如下。10.2.3读取图片幻灯片中的形状对象的shape_type属性值等于常量MSO_SHAPE_TYPE.PICTURE时,说明该形状是一张图片,此时可使用Pillow库来保存图片。示例代码如下。任务10.3自动调整PPT文档样式【任务目标】编写一个Python程序,调整任务10.1中生成的“李白故居旅游推荐会.pptx”文档样式,具体要求:所有标题背景颜色设置为浅蓝色,字体为黑体,字号为40pt、加粗;所有内容文本的段落行距设置为1.5倍行距,字体为仿宋,字号为28pt;不调整第1张标题幻灯片的样式。【任务实施】……10.3PPT文档样式设置操作PPT文档基本样式包括字体样式、段落样式和文本框样式等。10.3.1设置字体样式字体样式主要包括是否加粗、颜色、是否斜体、字体名称、字号、是否加下画线等。在python-pptx库中,文本框内容由多个段落组成,每个段落又由多个文字块组成。文字块对象的font属性用于返回一个字体对象,字体对象用于访问文字块的字体样式。字体对象的常用属性如下。(1)bold:用于返回或设置文字是否以粗体显示。(2)color:用于返回或设置文字的颜色。(3)italic:用于返回或设置文字是否以斜体显示。(4)name:用于返回或设置文字的字体名称。(5)size:用于返回或设置文字的字号。(6)underline:用于返回或设置文字是否加下画线。示例代码10.3.2设置段落样式在

python-pptx

库中,段落对象的

alignment

属性用于设置对齐方式,line_spacing

属性用于设置行距,space_before

属性用于设置段前间距,space_after属性用于设置段后间距。示例代码如下。10.3.3设置文本框样式文本框样式主要包括背景颜色、边框颜色和边框宽度等。在python-pptx库中,形状对象的fill属性用于返回一个填充对象,利用填充对象可完成文本框的背景颜色设置;形状对象的line属性用于返回一个线对象,利用线对象可完成文本框边框的颜色和宽度设置。示例代码如下。【综合实例】制作电子通讯录文件“test10_24.xlsx”保存了通讯录信息,包括序号、姓名、性别、出生日期、联系电话和地址。文档“test10_24.pptx”中第1张幻灯片为通讯录模板,如图所示。THANKYOU单元11Python教你玩转PDF文件任务11.1提取PDF文件中的表格【任务目标】使用PyMuPDF库提取文件“test11_01.pdf”中的所有表格,将其存入一个Excel文件,每个表格占一个工作表。【任务实施】……10.1读取PDF文件内容读取PDF文件内容主要包括读取表格、文本和图片等操作。11.1.1读取表格在PyMuPDF库中,调用页面对象的find_tables()方法可读取页面中的所有表格,再调用表格对象的to_pandas()方法可将表格转换为pandas的DataFrame对象,进一步将DataFrame对象写入Excel文件。示例代码如下。11.1.2读取文本PyMuPDF库的open()方法用于打开现有PDF文件或者创建空白PDF文件,该方法返回一个文档对象。调用文档对象的load_page()方法可加载指定页面,返回页面对象。再调用页面对象的get_text()方法可返回页面中的所有文本。示例代码如下。11.1.3读取图片打开PDF文件后,调用页面对象的get_images()方法可返回一个包含页面中所有图片对象的列表,再调用文档对象的extract_image()方法即可从图片对象中提取图片。示例代码如下。任务11.2批量转换PDF文件【任务目标】“test11_05”文件夹中有多个Word文档,编写一个程序将这些文档转换成PDF文件。【任务实施】……11.2PDF文件高级操作PDF文件高级操作包括合并、拆分、加密、解密文件,为文件添加水印,以及文件格式转换等。11.2.1合并和拆分文件使用PyMuPDF库,调用文件对象的insert_pdf()方法即可实现文件合并。示例代码如下。调用PyMuPDF库的insert_pdf()方法将原PDF文件页面插入新的PDF文件,即可实现文件拆分。insert_pdf()方法的第一个参数用于指定原PDF文件,from_page参数用于指定插入的起始页码,to_page参数用于指定插入的结束页码。示例代码如下。11.2.2加密和解密文件在使用PyMuPDF库的save()方法保存PDF文件时,可通过参数设置加密方法对文件进行加密,示例代码如下。PyMuPDF库的authenticate()方法用于验证密码并解密PDF文件,示例代码如下。11.2.3为文件添加水印1.添加文本水印调用页面对象的insert_text()方法可为文件添加文本水印,示例代码如下。在insert_text()方法中,参数overlay值为True时文本位于原页面文字上方,为False时文本位于原页面文字下方;参数rotate用于指定旋转角度,其有效值为0、90、180和270。如果需要添加其他旋转角度(如45°)的水印,可使用参数morph设置变换矩阵,示例代码如下。2.添加图片水印调用页面对象的insert_image()方法可为文件添加图片水印,示例代码如下。如果需要添加有旋转角度的图片水印,可先旋转图片,然后调用insert_image()方法将其添加到PDF文件,示例代码如下。11.2.4文件格式转换comtypes是一个Python库,可以通过调用MicrosoftWord或者MicrosoftPowerPoint的COM接口实现Word文档、PPT文档与PDF文件之间的转换。comtypes库安装命令如下。1.将Word文档转换为PDF文件调用comtypes.client.CreateObject()方法初始化Word应用程序后,可用其打开Word文档,然后将Word文档另存为PDF文件,示例代码如下。2.将PPT文档转换为PDF文件调用comtypes.client.CreateObject()方法初始化PowerPoint应用程序后,可用其打开PPT文档,然后将PPT文档另存为PDF文件,示例代码如下。3.将PDF文件转换为Word文档与将Word文档转换为PDF文件的操作方法类似,首先利用Word应用程序打开PDF文件,然后将PDF文件另存为Word文档,示例代码如下。【综合实例】生成录取通知书存档联(二)文档“test11_17.docx”保存了录取通知书存档联模板。编写一个Python程序,从文件“test11_17.xlsx”中读取录取信息,将学生的录取编号、姓名、性别、证件号码、专业名称依次填入模板中表格第2列的各行,将录取时间、总分依次填入模板中表格第4列的第4、第5行。最后,将录取照片插入文档末尾。录取照片保存在录取照片文件夹中,照片用学生的录取编号命名,如“20250001.jpg”。每个学生的存档联单独保存为一个PDF文件,文件用学生的录取编号命名,如“20250001.pdf”,并将其保存到存档联文件夹中。THANKYOU单元12Python教你玩转图像处理任务【任务目标】文件夹“test12_01”中有若干PNG、BMP格式的图像,编写一个Python程序,将这些图像转换为JPEG格式。【任务实施】……12.1图像基础操作读取和显示图像图像保存与格式转换裁剪图像绘制图形12.1.1读取和显示图像cv2.imread()函数用于将图像读取到内存,其基本语法格式如下。其中,相关参数说明如下。(1)filename:要加载的图像文件的路径(字符串),可以是绝对路径或相对路径。(2)flags:可选参数,用于指定图像读取方式,默认值为cv2.IMREAD_COLOR。cv2.imread()函数根据文件内容(而非扩展名)确定图像格式,并将读取的图像数据保存在一个NumPy数组中。默认情况下,cv2.imread()函数将图像转换为三通道BGR彩色图像格式,返回的三维数组按B、G、R通道顺序存储图像数据。cv2.imshow()函数用于在窗口中显示图像,其基本语法格式如下。其中,相关参数说明如下。(1)winname:窗口名称(字符串类型),显示在窗口标题栏。每个显示图像窗口的名称唯一。(2)img:要显示的图像数据,通常是一个NumPy数组(由cv2.imread()函数或其他图像处理函数生成)。示例代码如下。cv2.imread()函数可以实现按指定的方式读取图像,如以灰度模式读取图像,示例代码如下。12.1.2图像保存与格式转换cv2.imwrite()函数用于将图像存入指定文件,以文件扩展名指定图像格式,其基本语法格式如下。其中,相关参数说明如下。(1)filename:要保存的文件名或路径(字符串),必须包含文件扩展名(如.jpg、.png等)。(2)img:要保存的图像数据,必须是有效的NumPy数组。(3)params:可选参数,用于指定保存图像时使用的压缩参数或其他格式特定的参数,多数情况可以省略。①JPEG格式:使用[cv2.IMWRITE_JPEG_QUALITY,质量值]来设置图像质量(质量值范围为0~100),图像质量直接影响图像文件大小。②PNG格式:使用[cv2.IMWRITE_PNG_COMPRESSION,压缩级别]来调整压缩级别(压缩级别0~9),压缩级别直接影响图像文件大小。示例代码如下。12.1.3裁剪图像OpenCV库使用NumPy数组保存图像数据,所以裁剪图像等同于NumPy数组的切片操作。示例代码如下。12.1.4绘制图形OpenCV库中常用的绘制图形和文本的函数如下。(1)cv2.line():绘制直线。(2)cv2.rectangle():绘制矩形。(3)cv2.circle():绘制圆。(4)cv2.ellipse():绘制椭圆。(5)cv2.polylines():绘制多边形。(6)cv2.putText():绘制文本。(7)cv2.arrowedLine():绘制箭头。示例代码如下。cv2.putText()函数不能在图像中绘制汉字,可使用PIL模块在图像中绘制汉字,示例代码如下。任务12.2批量处理图像尺寸【任务目标】文件夹“test12_08”中保存了多个图像文件,编写一个

Python

程序,使用OpenCV库,将这些图像文件的分辨率调整为480px

×

640px(宽×高),大小小于40KB,格式转化为JPEG。【任务实施】……12.2图像处理缩放图像图像编码翻转图像旋转图像图像模糊抠图12.2.1缩放图像cv2.resize()函数用于缩放图像,支持缩小、放大和指定输出尺寸,其基本语法格式如下。其中,相关参数说明如下。(1)src:输入图像。(2)dsize:输出图像的尺寸,格式为(宽度,高度)。如果dsize设置为None,那么必须设置fx和fy参数来确定尺寸。(3)fx:可选参数,沿水平轴(x轴)方向的缩放比例。(4)fy:可选参数,沿垂直轴(y轴)方向的缩放比例。(5)interpolation:可选参数,插值方法,常用的选项如下。①cv2.INTER_NEAREST:最近邻插值。②cv2.INTER_LINEAR:双线性插值(默认)。对于放大图像,一般使用此选项。③cv2.INTER_CUBIC:双三次插值(即Bicubic插值,4px×4px邻域),效果比双线性插值好,但速度较慢,适用于缩小图像和放大较小图像。④cv2.INTER_LANCZOS4:Lanczos插值(8px×8px邻域),质量最高,但计算量最大。单击此处编辑母版标题样式示例代码如下。12.2.2图像编码cv2.resize()函数在缩放图像时,会在一定程度上影响图像文件大小。如果需要按要求调整图像文件大小,可使用cv2.imencode()函数。cv2.imencode()函数用于将图像编码为内存中的字节流,其基本语法格式如下。其中,相关参数说明如下。(1)retval:表明操作是否成功的布尔值。(2)buf:编码后的图像数据,以NumPy数组的形式返回。如果操作失败,则为空值。(3)ext:输出图像的格式扩展名字符串(如.jpg、.png等),包括前导点号。(4)img:要编码的图像。(5)params:可选参数,根据所选图像格式而定的编码参数,多数情况可以省略。例如,JPEG格式的质量可以通过[cv2.IMWRITE_JPEG_QUALITY,质量值]来设置;PNG格式的压缩级别可以通过[cv2.IMWRITE_PNG_COMPRESSION,压缩级别]来调整。示例代码如下。12.2.3翻转图像cv2.flip()函数用于沿指定轴翻转图像,其基本语法格式如下。其中,相关参数说明如下。(1)src:输入图像(NumPy数组),通常通过cv2.imread()读取。(2)flipCode:控制翻转方向。取值有0,表示垂直(上下)翻转;1,表示水平(左右)翻转;-1,表示同时垂直和水平翻转(相当于180°旋转)。示例代码如下。12.2.4旋转图像cv2.warpAffine()函数可用于旋转、缩放、平移、倾斜图像,其基本语法格式如下。其中,相关参数说明如下。(1)src:输入图像(NumPy数组)。(2)M:2×3的变换矩阵(NumPy数组),定义变换类型(如旋转、缩放等),需手动构造或通过cv2.getRotationMatrix2D()等函数生成。(3)dsize:输出图像的尺寸,格式为(宽度,高度)。(4)dst:可选参数,输出图像。(5)flags:可选参数,插值方法,如cv2.INTER_LINEAR、cv2.INTER_CUBIC。(6)borderMode:可选参数,边界填充方式,如cv2.BORDER_CONSTANT(用常数填充)、cv2.BORDER_REFLECT(完全反射)。(7)borderValue:可选参数,若borderMode为cv2.BORDER_CONSTANT,可指定填充颜色(默认为黑色)。示例代码如下。12.2.5图像模糊图像模糊也称图像平滑处理,通常应用于平滑图像、去噪或减弱细节。1.均值滤波cv2.blur()函数用于实现均值滤波,通过计算邻域像素的平均值来平滑图像,常用于去噪或减弱

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论