版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SSM框架应用于沈工高职考试系统的设计与实践第9章 文件和数据格式化文件的概念9.1文件的类型1文本文件:文本文件由字符组成,这些字符由单一特定码(如UTF-8)进行编码。例如:.txt文件、.py文件等。二进制文件:直接由比特0和1组成,没有统一的字符编码,.png文件、.avi文件等。文本文件VS二进制文件9.1文件的概念编码就是用数字来表示符号和文字,它是符号、文字存储和显示的基础。常见的编码方式:ASCII码:最早的编码方式,仅对10个数字、26个字母(大小写)及常用符号编码,最多只能表示256个字符。Unicode:涵盖多种语言的机内码。UTF-8:可以在不同的操作系统显示不同国家文字,Python默认编码方式。GB2312:中国定制的中文编码方式。GBK:对GB2312的扩充。9.1文件的概念文本文件的编码2Python用指针表示当前读写位置。读写过程中,文件指针的位置是自动移动的。使用tell()方法测试指针位置,seek()移动指针的位置。只读方式打开文件,指针指向文件开头。写入或追加数据时,指针指向文件末尾。通过设置指针位置,实现文件的定位读写。文件指针的概念39.1文件的概念文件的操作9.22读文件1文件的打开和关闭3写文件4文件定位读取9.2文件操作常用方法和属性1
文件的使用包括文件的打开、关闭、读写和目录的创建、删除、重命名等,通过Python内置方法和os模块中定义的方法来操作文件,方法和属性如下:属性名称功能mode设置文件对象的打开模式name设置文件对象的文件名encoding设置文件使用的编码格式closed判断文件是否关闭,若文件已关闭,则返回True,否则返回False9.2文件操作方法名功能file.open()打开文件file.close()关闭文件,关闭后文件不能再进行读写操作file.next()返回文件下一行file.read([size])从文件读取指定的字节数,如果未给定(或为负),则读取所有字节file.readline([size])读取整行,包括“\n"字符file.readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,则设置一次能读多少字节,这是为了减轻读取压力file.seek(offset[,whence])设置文件当前位置file.tell(file.truncate([size])返回文件当前位置file.write(str)将字符串写入文件,返回的是写入的字符长度file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符常用方法和属性1打开-操作-关闭9.2.1文件的打开和关闭文件的处理步骤1<变量名>=open(<文件名>,<打开模式>,<编码方式>)文件句柄文件路径和名称读写二进制or文本D:\python\f.txtUTF-8orGB23129.2.1文件的打开和关闭文件的打开2文件的打开模式描述‘r’只读模式,默认值,如果文件不存在,返回FileNotFoundError‘w’覆盖写模式,文件不存在则创建,存在则完全覆盖‘x’创建写模式,文件不存在则创建,存在则返回FileExistsError‘a’追加写模式,文件不存在则创建,存在则在文件最后追加内容‘b’二进制文件模式‘t’文本文件模式,默认值‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能文件的打开模式39.2.1文件的打开和关闭f=open("f.txt")f=open("f.txt","rt")f=open("f.txt","w")f=open("f.txt","a+")f=open("f.txt","x")f=open("f.txt","b")f=open("f.txt","wb")文本形式、只读模式、同默认二进制形式、覆盖写模式文本形式、覆盖写模式文本形式、只读模式、默认值文本形式、追加写模式+读文件文本形式、创建写模式二进制形式、只读模式9.2.1文件的打开和关闭文件的打开模式-案例3<变量名>.close()文件句柄上述方式需要手动调用close()方法,一般推荐使用with语句实现文件的自动关闭与刷新,示例如下:文件的关闭49.2.1文件的打开和关闭withopen('a.txt','w+')asfile:file.write("HelloWorld!\n")常用的文件读取方法有read()、readline()和readlines()。文件内容的读取1操作方法描述<f>.read(size=-1)读入全部内容,如果给出参数,读入前size长度,返回值类型为字符串
>>>s=f.read(2)中国<f>.readline(size=-1)读入指针对应行的内容,如果给出参数,读入前size长度,返回值类型为字符串
>>>s=f.readline()中国是个伟大的国家!<f>.readlines(hint=-1)读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint字符>>>s=f.readlines()[‘中国是个伟大的国家!’,’我们热爱我们的祖国!’,‘祝愿我们的祖国繁荣昌盛!’]9.2.2读文件文件全文遍历2方式一:一次读入,统一处理方式二:按数量读入,逐步处理9.2.2读文件方式一:一次读入,统一处理file1=open("f.txt","rt",encoding="utf-8")
#2、一次读入,txt1为str类型
txt1=file1.read()
print(txt1)
#3、关闭文件
file1.close()文件全文遍历29.2.2读文件方式二:按数量读入,逐步处理file1=open("f.txt","rt",encoding="utf-8")
#2、一次读入,txt1为str类型
txt1=file1.read(2)
print(txt1)
whiletxt1!="":
txt1=file1.read(2)
print(txt1)
#3、关闭文件
file1.close()文件全文遍历29.2.2读文件方式一:一次读入,分行处理方式二:分行读入,逐行处理9.2.2读文件文件逐行操作3方式一:一次读入,分行处理9.2.2读文件file1=open("f.txt","rt",encoding="utf-8")
filelist=file1.readlines()
forfoinfilelist:
print(fo,end="")
file1.close()文件逐行操作3方式二:分行读入,逐行处理9.2.2读文件file1=open("f.txt","rt",encoding="utf-8")
forfoinfile1:
print(fo,end="")
file1.close()文件逐行操作3写文件常用方法操作方法描述<f>.write(s)向文件写入一个字符串或字节流
>>>f.write("中国是一个伟大的国家!")<f>.writelines(lines)将一个元素全为字符串的列表写入文件>>>ls=[“中国”,“法国”,“英国"]>>>f.writelines(ls)
中国法国美国9.2.3写文件文件定位读取1操作方法描述<f>.tell()获取文件当前的读写位置<f>.seek(offset)改变当前文件操作指针的位置,offset含义如下:0–文件开头;1–当前位置;2–文件结尾>>>s=f.seek(0)#回到文件开头9.2.4文件的定位读取分析该代码输出结果没有任何输出9.2.4文件的定位读取文件定位读取-案例1中国是一个伟大的国家!中国法国英国案例25:文件的复制举个例子Forexample案例代码Case9_5.py编写代码实现如下功能:
在控制台输入文件名称,通过编写程序实现复制文件功能,例如旧文件名称“a.txt”,复制后的新文件名称为a-副本.txt。
案例25:文件的复制案例需求1文件复制过程即先读后写的过程确定原文件存储位置及名称确定复制后的新文件存储位置及名称从原文件逐行读出到复制后的新文件逐行写入
案例25:文件的复制举个例子Forexample案例代码Case9_5.py梳理思路2模块7:os库9.3常用函数操作方法描述os.remove(“文件名”)可删除文件,该函数要求目标文件存在os.remove('a.txt')rename(原文件名,新文件名)对文件进行重命名:os.rename('a.txt','b.txt')mkdir('dir')/rmdir('dir')创建/删除目录:os.mkdir('dir’)os.rmdir('dir')os.getcwd()获取当前目录:当前目录即Python当前的工作路径>>>os.getcwd()'D:\\PyCharmCode\\Chapter08'chdir()更改文件默认目录os.chdir('C:\\')os.getcwd()os.listdir('./')返回目录下所有文件,返回列表类型9.3模块7:os库1标准库中的os库提供了丰富的函数来处理文件和目录9.3模块7:os库对文件进行操作,首先要知道文件的存储位置,对当前文件操作,只需要给出文件名,即以相对路径方式表示;若操作的文件不在当前目录下,需要给出完整路径,即以绝对路径方式表示。绝对路径有3种表示方法:转义字符表示法:文件路径中”\”需要转义,即以“\\”表示字符“\”,例如:'D:\\data\\a.txt'绝对路径表示方法2字符r表示法:使用字符r将路径声明为原始字符串,例如:r'D:\data\a.txt'斜杠“/”表示法:将路径中的“\”替换为“/”,例如:'D:/data/a.txt'案例26:生成上机考试文件夹9.4举个例子Forexample案例代码Case9_9.py打开文件,读取文件内容循环遍历读取到的内容跳过第一行标题行跳过空行使用“\t”对读取的内容进行分隔生成文件夹,中间用“-”连接9.4案例26:生成上机考试文件夹案例需求1梳理思路2学校安排学生上机考试,考试完成后需要提交考试成果文件,本案例根据学生名单文件中存储的考生信息生成考生文件夹,方便学生提交考试成果文件。模块8:csv库9.5CSV:Comma-SeparatedValues(逗号分隔值)CSV格式是一种通用的、相对简单的文本文件格式,通常用于在程序之间转移表格数据,是国际通用的一二维数据存储格式,文件扩展名为.csv
每行一个一维数据,采用逗号分隔,无空行Excel和一般编辑软件都可以读入或另存为csv文件9.5模块8:csv库CSV数据存储格式9.5模块8:csv库CSV存储格式遵循基本规则读取出的数据一般为字符类型,如果要获得数值类型,需要用户进行转换。以行为单位读取数据。列之间以半角逗号或制表符进行分隔,通常是半角逗号。每行开头不留空行,第一行是属性,数据列之间用分隔符隔开,无空格,行之间无空行。9.5模块8:csv库读入方式:从csv中读出数据[['序号','属性名称','字段类型'],['1','院系编码','string'],['2','院系名称','string'],['3','院系级别','int'],['4','院长姓名','string'],['5','联系电话','string'],['6','办公地点','string'],['7','学院特色','string'],['8','状态','int']]9.5模块8:csv库写入处理:将数据写入CSV格式的文件9.5模块8:csv库案例27:学生成绩处理9.69.6案例27:学生成绩处理举个例子Forexample案例代码Case9_10.py使用csv库对学生成绩进行相关操作:从文件中读取学生成绩信息;在控制台中输出成绩信息;计算学生的总成绩,写入到文件中。案例需求1分别打开旧文件(读取)、新文件(写入)的文件从旧文件中读取信息,处理后放在列表变量lines中在表头行添加“总分”字段对列表中的数据进行循环遍历,计算总分,并放在每一行的最后一个字段循环遍历lines,在控制台输出成绩信息,并写入到新的文件中。举个例子Forexample梳理思路29.6案例27:学生成绩处理模块9:json库9.7JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,可以对高维数据进行表达和存储。json库是处理JSON格式的Python标准库,使用importjson语句导入。json库主要包括操作类函数和解析类函数操作类函数主要完成外部JSON格式和程序内部数据类型之间的转换功能解析类函数主要用于解析键值对内容。9.7模块9:json库json库操作函数序号函数功能1json.dumps(obj,sort_keys=False,indent=None)将Python的数据类型转换为JSON格式的字符串,称为编码过程2json.loads(string)将JSON格式字符串转换为Python的数据类型,称为解码过程3json.dump(obj,fp,sort_keys=False,indent=None)与dupms()功能一致,输出到文件fp4json.load(fp)与loads()功能一致,从文件fp读入9.7模块9:json库使用json字符串生成python对象(load方法)由Python对象格式化成json字符串(dump方法)9.7模块9:json库举个例子Forexample9.7模块9:json库案例28:身份证号码归属地查询9.8举个例子Forexample案例代码Case9_12.py9.8案例28:身份证号码归属地查询1.身份证号码由17位数字本体码和一位校验码组成前6位为地址码前两位+“0000”为所属省编号前四位+“00”为所属市编号前六位查询所属县(区)编号案例需求12.从键盘输入身份证号码前6位3.通过查询文件内容,输出身份证号的归属地举个例子Forexample案例代码Case9_12.py9.8案例28:身份证号码归属地查询读取文件内容,转换为字典类型dict输入身份证号码前6位获得所在省的编号获的所在市的编号初始化遍历privince、city、region为空值,分别存储身份证对应的省、市、区(县)遍历字典dict,找到对应的省、市、区(县)的值输出身份证所属地信息。梳理思路2模块10:PIL库9.92Image类1PIL库的概念3ImageDraw类4ImageFilter类PIL(PythonImageLibrary)库是Python语言的第三方模块,它是一个具有强大图像处理能力的第三方模块,不仅包含了丰富的像素、色彩操作功能,还可以用于图像归档和批量处理。PIL库共包括21个与图片相关的类,这些类可以被看作是子库或PIL库中的模块。使用时需要通过pip工具安装,需要注意的是安装库的名字是pillow。:\>pip3installpillow#或者pipinstallpillow9.9.1PIL库的概念引入这个类的方法如下:9.9.2Image类fromPILimportImage1引入类方法说明Image.open(filename)根据参数加载图像文件Image.new(mode,size,color)根据给定参数创建一幅新的图像Image.open(StringIO.StringIO(buffer))从字符串中获取图像lmage.frombytes(mode,size.data)根据像素点data创建图像Image.verify()对图像文件完整性进行检查,返回异常图像读取和创建方法29.9.2Image类属性名说明Image.format返回图像的格式,如.png、.bmp、.jpg,如果图像不是从文件读取的,则值为None。Image.mode返回图像的模式:L(luminance):灰度图像,表示黑和白;RGB:为真彩色图像;CMYK:出版图像;Image.size图片大小,是一个二元tuple,包含width和height(宽度和高度,单位是px):Image.palette调色板属性,返回一个ImagePalette类型3常用属性9.9.2Image类方法说明Image.save(filename,format)将图像保存为flename文件名,format是图像格式使用lmage.convert(mode)不同的参数,转换图像为新的模式Image.filter(filter)返回一个使用给定滤波器处理过的图像拷贝lmage.thumbnail(size)创建图像的缩略图,size是缩略图尺寸的二元元组4图像转换和保存方法9.9.2Image类ImageDraw模块提供了Draw类,它能在Image实例上进行简单的2D绘画,Draw类常用方法如下:9.9.3ImageDraw类方法描述Draw.arc(xy,start,end,options)在给定的区域内,在开始和结束角度之间绘制一条弧Draw.line(xy,options)在变量xy列表所表示的坐标之间画线Draw.bitmap(xy,bitmap,options)使用不同的参数,转换图像为新的模式Draw.ellipse(xy,options)在给定的区域绘制一个椭圆形Draw.polygon(xy,options)绘制一个多边形Draw.rectangle(box,options)绘制一个长边形Draw.text(position,string,options)在给定的位置绘制一个字符串,变量position给出了文本的左上角的位置Draw.point(xy,fill=None)在给定坐标处绘制点,fill为点的颜色Draw.line(xy,options)函数绘制直线其中xy表示坐标列表,列表中元素类型为元组options可用的选项: fill=(R,G,B):指定线条颜色 width=int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省青岛市李沧区2025-2026学年六年级上学期语文期中试卷(含答案)
- 2026及未来5年中国三元共聚聚丙烯树脂市场现状数据分析及前景预测报告
- 2026及未来5年中国SBR生物处理装置市场现状数据分析及前景预测报告
- 2026年河南省郑州市法官入员额考试笔试试题及答案
- 2026年二级建造师《建设工程施工管理》考试试题及答案
- 2026年全国高校计算机基础考试模拟题及答案详解
- 2026年4月全国自学考试高级财务会计模拟试题(含答案)
- 自贸区知识试题及答案详解
- 2026年冰心散文模拟试卷(含答案)
- 2026年轨道行业模拟试卷目(含答案)
- 2026-2027学年八年级上学期统编版历史期中测试卷(含答案)
- 分公司章程范本
- 2026年中级注册安全工程师《金属非金属矿山安全实务》考试真题及答案
- 2025年生物物理所博士英语笔试及答案
- 乡镇卫生院生物安全制度
- 内蒙古呼和浩特市新城区2025-2026学年八年级上学期期中考试物理试卷(含答案)
- 2025年军队基层常用文书写作与范例
- GB/T 20118-2025钢丝绳通用技术条件
- 渐冻症课件教学课件
- 医院重点专科建设申报汇报
- 人教版 浙教版 培智 生活语文五年级上册 部分教案
评论
0/150
提交评论