书签 分享 收藏 举报 版权申诉 / 78
上传文档赚钱

类型Python3基础教程第7章课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3371888
  • 上传时间:2022-08-24
  • 格式:PPTX
  • 页数:78
  • 大小:208.10KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Python3基础教程第7章课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Python3 基础教程 课件
    资源描述:

    1、Python3基础教程第2版 慕课版第7章文件和数据格式化本章主要内容:文件读写CSV文件数据组织的维度7.1 文件本节主要内容:文件类型打开和关闭文件读写文本文件读写二进制文件用文件存储对象目录操作7.1.1 文件类型通常,文件可分为文本文件和二进制文件。文本文件根据字符编码保存文本,常见字符编码如ASCII、UTF-8、GB2312等。文本文件按字符读取文件,一个字符占用一个或多个字节。文本文件常用于保存字符组成的文本,整个文件可看作一个长字符串。二进制文件存储的是数据的二进制代码(位0和位1),即将数据在内存中的存储形式复制到文件中。二进制文件没有字符编码,文件的存储格式与用途无关。二进

    2、制文件通常用于保存图片、音频和视频等数据。图片、音频和视频有不同的编码格式,如png格式的图片、mp3格式的音频、mp4格式的视频等。二进制文件通常按字节读取文件。Python根据打开模式按文本文件或二进制文件格式读写文件中的数据。按文本文件格式读取文件数据,示例代码如下。file=open(data.txt,rt)#打开文件 print(file.readline()#从文件读一行数据,输出Python3基础教程 file.close()#关闭文件按文本文件格式读取数据时,Python会根据字符编码将数据解码为字符串,将数据转换为有意义的字符。按二进制文件格式读取文件数据,示例代码如下。fi

    3、le=open(data.txt,rb)print(file.readline()bPython3xbbxf9xb4xa1xbdxccxb3xcc file.close()按二进制文件格式读取数据时,数据为字节流,Python不执行解码操作,读取的数据作为bytes字符串,并按bytes字符串格式输出。7.1.2 打开和关闭文件 可用Python内置的open()函数来打开文件,并返回关联的文件对象。open()函数基本格式为如下。myfile=open(filename,mode)其中:myfile为引用文件对象的变量 filename为文件名字符串 mode为文件读写模式。在文件名中可包含

    4、相对或绝对路径,省略路径时,Python在当前工作目录中搜索文件。IDLE的当前工作目录为Python安装目录。在系统命令提示符窗口中执行python.exe进入交互环境或执行Python程序时,当前目录为Python的当前工作目录。文件读写模式“r”:只读模式,默认值。“w”:只写模式,创建新文件。若文件已存在,则原来的文件被覆盖。a”:只写、追加模式。若文件存在,在文件末尾添加数据。文件不存在时会创建新文件。“x”:只写模式,创建新文件。若文件已存在,则报错。“t”:按文本格式读写文件数据,默认方式。“b”:按二进制格式读写文件数据。“+”:组合读写模式,同时进行读、写操作。“t”“b”和

    5、“r”“w”“a”“x”可组合使用,“+”必须和“r”“w”“a”组合使用。常用文件读写模式组合 省略读写模式:只能按文本格式从文件读取数据,等同于“rt”。例如,open(data.txt)。“rb”:只能按二进制格式从文件读取数据。例如,open(data.txt,rb)。“w”和“wt”:只能按文本格式向文件写入数据。例如,open(data.txt,w)。“r+”:可按文本格式从文件读取数据,或向文件写入数据。例如,open(data.txt,r+)。“wb”:只能按二进制格式向文件写入数据。例如,open(data.txt,wb)。“rb+”:可按二进制格式从文件读取数据,或向文件写

    6、入数据。例如,open(data.txt,rb+)。“a+”:可按文本格式从文件读取数据,或向文件写入数据,写入的数据始终添加到文件末尾。例如,open(data.txt,a+)。“ab+”:可按二进制格式从文件读取数据,或向文件写入数据,写入的数据始终添加到文件末尾。例如,open(data.txt,ab+)。文件指针 打开文件后,Python用一个文件指针记录当前读写位置。以“w”或“a”模式打开文件时,文件指针指向文件末尾 以“r”模式打开文件时,文件指针指向文件开头。Python始终在文件指针的位置读写数据,读取或写入一个数据后,根据数据长度,向后移动文件指针。close()方法clo

    7、se()方法用于关闭文件,示例代码如下。myfile.close()#关闭文件通常,Python会使用内存缓冲区缓存文件数据。关闭文件时,Python将缓冲的数据写入文件,然后关闭文件,释放对文件的引用。程序结束时,Python可自动关闭未使用的文件。flush()方法可将缓冲区的内容写入文件,但不关闭文件,示例代码如下。myfile.flush()7.1.3 读写文本文件 文本文件有关的读写方法如下:read():将从文件指针位置开始到文件末尾的内容作为一个字符串返回。read(n):将从文件指针位置开始的n个字符作为一个字符串返回。readline():将从文件指针位置开始到下一个换行符号

    8、的内容作为一个字符串返回,读取内容包含换行符号。readlines():将从文件指针位置开始到文件末尾的内容作为一个列表返回,每一行的字符串作为一个列表元素。write(xstring):在文件指针位置写入字符串,返回写入的字符个数。writelines(xlist):将列表中的数据合并为一个字符串写入到文件指针位置,返回写入的字符个数。seek(n):将文件指针移动到第n个字节,0表示指向文件开头。tell():返回文件指针当前位置。文本文件按字符读取数据,如果文件包含Unicode字符,Python会自动进行转换。文本文件中每行末尾以回车换行符号结束在读取的字符串中,Python用“n”代

    9、替回车换行符号。二进制文件读取的回车换行符号为“rn”。文本文件code.txt的数据如下one第一行two第二行three第三行1以“r”模式打开文件读数据 以“r”模式打开文件时,文件指针位于文件开头,只能从文件读取数据,示例代码如下。myfile=open(rd:code.txt)#以默认只读方式打开文件 x=myfile.read()#读文件全部内容到字符串 x#每行末尾的换行符号在字符串中为“n”one第一行ntwo第二行nthree第三行 print(x)#打印格式与原文件完全一致 one第一行 two第二行 three第三行 myfile.read()#文件指针已指向文件末尾,返

    10、回空字符串 myfile.seek(0)#将文件指针移动到文件开头0 myfile.read(5)#读5个字符one第一 myfile.tell()#返回文件指针的当前位置7 myfile.readline()#读取从文件指针当前位置到当前行末尾的字符串行n myfile.readline()#读下一行two第二行n myfile.seek(0)0 myfile.readlines()#读文件全部内容到列表 one第一行n,two第二行n,three第三行 myfile.seek(0)0 for x in myfile:print(x)#以迭代方式读文件 one第一行#请思考两行数据之间为什么

    11、有一个空行?two第二行 three第三行 myfile.close()#关闭文件2以“r+”模式打开文件以“r+”模式打开文件时,文件操作具有下列特点。可从文件读取数据,也可向文件写入数据。刚打开文件时,文件指针指向文件开头。在执行读操作后执行写操作时,不管文件指针位置在哪里,都将数据写入文件末尾。要在特定位置写入数据,需要先执行seek()函数指定文件指针位置,然后写入数据。myfile=open(rd:code.txt,r+)myfile.write(oneline)#写入字符串,此时写入到文件开头,覆盖原数据7 myfile.seek(0)#定位文件指针到文件开头0 myfile.re

    12、ad()#读取全部数据oneline行ntwo第二行nthree第三行 myfile.seek(7)#将文件指针指向第8个字节(位置为7)7 myfile.write(123456)#写入数据,会覆盖原第一行末尾的换行符号6 myfile.seek(0)#定位文件指针到文件开头0 myfile.read()#读取数据,查看前面写入的数据oneline123456o第二行nthree第三行 myfile.seek(0)#定位文件指针到文件开头 0 myfile.read(5)#读取5个字符 oneli myfile.tell()#查看文件指针位置 5 myfile.write(xxx)#写入数据

    13、,读取数据后立即写入,数据写入文件末尾 3 myfile.seek(0)#定位文件指针到文件开头 0 myfile.read()#读取数据,查看前面写入的数据,“xxx”在文件末尾 oneline123456o第二行nthree第三行xxx myfile.close()#关闭文件3以“w”模式打开文件以“w”模式打开文件时,会创建一个新文件。如果存在同名文件,原来的文件会被覆盖。所以,使用“w”模式打开文件时应特别小心。以“w”模式打开文件时,只能向文件写入数据。myfile=open(rd:code2.txt,w)myfile.write(onen)#将字符串写入文件4 myfile.wri

    14、telines(1,2,abc)#将列表写入文件,列表对象必须都是字符串 myfile.close()#关闭文件 myfile=open(rd:code2.txt)#重新打开文件,读取前面写入的数据 myfile.read()onen12abc myfile.close()#关闭文件 在向文本文件写入需要换行的数据时,应在字符串末尾嵌入“n”,否则数据不会换行。4以“w+”模式打开文件以“w+”模式打开文件时,允许同时读写文件 myfile=open(rd:code2.txt,w+)myfile.read()#新建文件,所以其中没有数据,返回空字符串 myfile.write(onen)#将字

    15、符串写入文件4 myfile.writelines(1,2,abc)myfile.seek(0)#将文件指针移动到文件开头0 myfile.readline()#读第1行onen myfile.readline()#读第2行12abc myfile.readline()#已经到文件末尾,返回空字符串 myfile.seek(4)#将文件指针移动到第4个字节之后4 myfile.write(xxxxxxx)#将字符串写入文件7 myfile.seek(0)#将文件指针移动到文件开头0 myfile.read()#读取全部数据onenxxxxxxx myfile.close()#关闭文件5以“a”

    16、模式打开文件以“a”模式打开文件时,只能向文件写入数据,文件打开时文件指针指向文件末尾,向文件写入的数据始终添加到文件末尾。myfile=open(rd:code2.txt,a)myfile.write(n123456)#将字符串写入文件7 myfile.seek(4)4 myfile.write(*)#虽然文件指针指向第5个字符,但仍写入文件末尾5 myfile=open(rd:code2.txt)#重新以只读方式打开文件 print(myfile.read()#查看读取的数据onexxxxxxx123456*6以a+”模式打开文件“a+”与“a”模式的唯一区别是前者除了允许写入数据,还可以

    17、读取文件数据 myfile=open(rd:code2.txt,a+)myfile.tell()#查看文件指针位置,此时应为文件末尾25 myfile.write(n新添加的数据)#将字符串写入文件7 myfile.seek(0)#将文件指针移动到文件开头0 print(myfile.read()#打印读取的文件内容onexxxxxxx123456*新添加的数据 myfile.seek(5)#将文件指针移动第5个字符之后5 myfile.write(newdata)#将字符串写入文件7 myfile.seek(0)#将文件指针移动到文件开头0 print(myfile.read()#打印读取的

    18、数据,查看前面写入的“newdata”的位置onexxxxxxx123456新添加的数据newdata myfile.close()#关闭文件7.1.4 读写二进制文件上一节中讲述的文本文件的各种读写方法均可用于二进制文件,区别在于:二进制文件读写的是bytes字符串。例如,下面的代码先以“wb”模式创建一个二进制文件,然后分别用“r”和“rb”模式打开文件,读取文件内容。myfile=open(rd:code3.txt,wb)#创建二进制文件 myfile.write(aaaaa)#出错,二进制文件只能写入bytes字符串 Traceback(most recent call last):F

    19、ile,line 1,in TypeError:a bytes-like object is required,not str myfile.write(baaaaa)#正确,将bytes字符串写入文件 5 myfile.write(bnbbbb)5 myfile.close()myfile=open(rd:code3.txt,r)print(myfile.read()#打印读取文件的全部内容aaaaabbbb myfile=open(rd:code3.txt,rb)print(myfile.read()#打印读取文件的全部内容baaaaanbbbb myfile.close()#关闭文件7.

    20、1.5 用文件存储对象用文本文件或二进制文件格式直接存储Python中的各种对象,通常需要进行繁琐的转换。可以使用Python标准模块pickle处理文件中对象的读写 x=1,2,abc#创建列表对象 y=name:John,age:25#创建字典对象 myfile=open(rd:objdata.bin,wb)import pickle#导入pickle模块 pickle.dump(x,myfile)#将列表对象写入文件 pickle.dump(y,myfile)#将字典对象写入文件 myfile.close()#关闭文件 myfile=open(re:pytempobjdata.bin,r

    21、b)myfile.read()#直接读取文件中的全部内容,查看内容bx80 x03qx00(Kx01Kx02Xx03x00 x00 x00abcqx01e.x80 x03qx00(Xx03x00 x00 x00ageqx01Kx19Xx04x00 x00 x00nameqx02Xx04x00 x00 x00Johnqx03u.myfile.seek(0)#将文件指针移动到文件开头0 x=pickle.load(myfile)#从文件读取对象 x1,2,abc x=pickle.load(myfile)#从文件读取对象 xage:25,name:John7.1.6 目录操作文件操作通常都会涉及到

    22、目录操作。目录是一种特殊的文件,它存储当前目录中的子目录和文件的相关信息。Python的os模块提供了目录操作函数,使用之前应先导入模块,示例代码如下。import os1os.getcwd()该方法返回Python的当前工作目录,示例代码如下。os.getcwd()D:pytemp2os.mkdir()该方法用于创建子目录,示例代码如下。os.mkdir(temp)#在当前目录中创建子目录 os.mkdir(d:ptemtest)#在绝对路径d:ptem中创建子目录test 3os.rmdir()该方法用于删除指定的空子目录,示例代码如下。os.rmdir(temp)#删除当前目录的子目录

    23、os.rmdir(d:ptemtest)#删除绝对路径中的子目录test os.rmdir()只能删除空的子目录,删除非空子目录时会出错,示例代码如下。os.rmdir(pycode)Traceback(most recent call last):File,line 1,in OSError:WinError 145 目录不是空的。:pycode4os.listdir()该方法返回目录包含的子目录和文件名称,示例代码如下。os.listdir()#列出当前目录内容code2.txt,pycode,temp os.listdir(d:ptem)#列出指定目录内容test,test.py5os.

    24、chdir()该方法用于改变当前目录,示例代码如下。os.getcwd()#查看当前目录D:pytemp os.mkdir(tem)#在当前目录中创建子目录 os.chdir(tem)#切换当前目录 os.getcwd()#查看新的当前目录D:pytemptem os.chdir(d:ptem)#用绝对路径指定要切换的目录 os.getcwd()d:ptem os.chdir(c:/)#切换到其他磁盘的目录 os.getcwd()c:6os.rename()该方法用于修改文件的名称,示例代码如下。os.rename(rd:ptemtest.py,d:ptemcode.py)7os.remove

    25、()该方法用于删除指定的文件,示例代码如下。os.remove(d:ptemcode.py)7.2 读写CSV文件本节主要内容:CSV文件的基本概念读CSV文件数据将数据写入CSV文件7.2.1 CSV文件的基本概念 CSV指Comma-Separated Values,即逗号分隔值。CSV文件也是文本文件,其存储使用特定分隔符分隔的数据。分隔符可使用逗号、空格、制表符、其他字符或字符串。例如,下面的内容是一个典型的CSV文件内容。专业名称,层次,科类工程造价,高起专,文科工商企业管理,高起专,文科建筑工程技术,高起专,理科工程造价,高起专,理科汽车服务工程,专升本,理工类 可用Windows

    26、记事本创建该文件,保存时使用UTF-8编码格式。使用open()函数打开文件时,应用“encoding=utf-8”作为参数指定编码格式,以便Python程序正确读取其中的汉字。CSV文件也可使用Excel打开、查看和编辑数据。CSV文件通常由多个记录组成,第1行通常为记录的各个字段名称,第2行开始为记录数据。每条记录包含相同的字段,字段之间用分隔符分隔。可以使用open()函数打开CSV文件,按文本文件方式读写CSV数据。采用这种方式需要将读取的每行字符串转换成字段数据,写入时需要添加分隔符。Python提供的csv模块提供了CSV文件读写功能。7.2.2 读CSV文件数据 csv模块提供了

    27、两种读取器对象来读取CSV文件数据:常规读取器和字典读取器。1使用常规读取器 csv模块中的reader()函数用于创建常规读取器对象,其基本格式如下。csvreader=csv.reader(csvfile,delimiter=分隔符)其中:变量csvreader用于引用读取器对象;csvfile是open()函数返回的文件对象;delimiter参数指定CSV文件使用的数据分隔符,默认为逗号。常规读取器对象是一个可迭代对象,每次迭代返回一个包含一行数据的列表,列表元素对应CSV记录的各个字段。可用for循环或next()函数迭代常规读取器对象。import csv csvfile=open

    28、(rd:招生专业.csv,encoding=utf-8)csvreader=csv.reader(csvfile)#创建读取器对象 for row in csvreader:#用循环迭代读取CSV文件.print(row)#输出包含CSV文件数据行的列表.csvfile.seek(0)#将文件指针移动到文件开头0 next(csvreader)#使用next()函数迭代读取CSV文件专业名称,层次,科类 next(csvreader)工程造价,高起专,文科 next(csvreader)工商企业管理,高起专,文科 csvfile.close()#关闭文件 2使用字典读取器 csv模块中的Dic

    29、tReader()函数用于创建字典读取器对象,其基本格式如下。csvreader=csv.DictReader(csvfile)其中:变量csvreader用于引用读取器对象 csvfile是open()函数返回的文件对象。字典读取器对象是一个可迭代对象,每次迭代返回一个包含一行数据的排序字典对象(OrderedDict,即排好序的字典对象)。字典读取器对象默认将CSV文件的第1行作为字段名称,将字段名称作为字典中的“键”。CSV文件中第2行开始的每行数据按顺序作为“键”映射的“值”。可用for循环或next()函数迭代字典读取器对象。import csv csvfile=open(rd:招生

    30、专业.csv,encoding=utf-8)csvreader=csv.DictReader(csvfile)#创建读取器对象 for row in csvreader:#用循环迭代读取CSV文件.print(row)#输出包含CSV文件数据行的字典对象.csvfile.seek(0)0 for row in csvreader:#用“键”索引输出数据.print(row专业名称,row层次,row科类,sep=t).csvfile.seek(0)0 next(csvreader)#用next()函数迭代OrderedDict(专业名称,专业名称),(层次,层次),(科类,科类)next(cs

    31、vreader)OrderedDict(专业名称,工程造价),(层次,高起专),(科类,文科)row=next(csvreader)print(row专业名称,row层次,row科类)工商企业管理 高起专 文科 csvfile.close()7.2.3 将数据写入CSV文件1用常规写对象写数据 常规写对象由csv.writer()函数创建,其基本格式如下。csvwriter=csv.writer(csvfile)其中:变量csvwriter用于引用写对象,csvfile是open()函数返回的文件对象。写对象的writerow()方法用于向CSV文件写入一行数据,其基本格式如下。csvwrit

    32、er.writerow(data)其中,data是一个列表对象,包含一行CSV数据。将数据写入CSV后,writerow()方法会在每行数据末尾添加两个换行符号。import csv csvfile=open(d:/csvdata2.txt,w)#打开文件 csvwriter=csv.writer(csvfile)#创建常规写对象 csvwriter.writerow(xm,sex,age)#写入字段标题12 csvwriter.writerow(张三,男,25)#写入数据行9 csvwriter.writerow(韩梅梅,女,18)#写入数据行10 csvfile.close()#关闭文件

    33、csvfile=open(d:/csvdata2.txt)#以只读模式打开文件 csvfile.read()#读取全部数据,注意每行末尾有两个换行符号xm,sex,agenn张三,男,25nn韩梅梅,女,18nn csvfile.seek(0)0 print(csvfile.read()#打印文件数据,因为每行末尾有两个换行符号,所以有空行出现xm,sex,age 张三,男,25 韩梅梅,女,18 2用字典写对象向CSV文件写入数据 字典写对象由csv.DictWriter()函数创建,其基本格式如下。csvwriter=csv.DictWriter(csvfile,fieldnames=字段

    34、名列表)其中:变量csvwriter用于引用写对象 csvfile是open()函数返回的文件对象。参数fieldnames用列表指定字段名,它决定将字典写入CSV文件时,“键:值”对中的各个值的写入顺序。字典写对象的writerow()方法用于向CSV文件写入一行数据,其基本格式如下。csvwriter.writerow(data)其中,data是一个字典对象,包含一行CSV数据。import csv csvfile=open(d:/csvdata2.txt,w)#打开文件 csvwriter=csv.DictWriter(csvfile,fieldnames=xm,sex,age)#创建字

    35、典写对象 csvwriter.writeheader()#写入字段名 csvwriter.writerow(xm:韩梅梅,sex:女,age:18)#写数据10 csvwriter.writerow(xm:Mike,sex:male,age:20)#写数据14 csvfile.close()csvfile=open(d:/csvdata2.txt)#以只读模式打开文件 csvfile.read()#读取数据进行查看xm,sex,agenn韩梅梅,女,18nnMike,male,20nn7.3 数据组织的维度本节主要内容:一维数据的处理二维数据的处理数据排序数据查找7.3.1 基本概念 计算机在

    36、处理数据时,总是按一定的格式来组织数据,以便提高处理效率。数据的组织格式表明数据之间的基本关系和逻辑,进而形成“数据组织的维度”。根据数据关系的不同,可将数据组织分为一维数据、二维数据和高维(或多维)数据。1一维数据 一维数据由具有对等关系的有序或无序的数据组成,采用线性方式组织。数学中的集合和数组就是典型的一维数据。例如,下面的一组专业名称就属于一维数据。计算机应用,工程造价,会计学,影视动画2二维数据 二维数据也称为表格数据,由具有关联关系的数据组成,采用二维表格组织数据。数学中的矩阵、二维表格都属于二维数据。例如,下面的成绩表是一组二维数据。姓名姓名语文语文数学数学物理物理小明小明808

    37、590韩梅梅韩梅梅978790李雷李雷8890703高维数据维度超过二维的数据都称为高维数据。例如,成绩表加上学期,表示学生每学期的各科成绩,则构成三维数据。再加上学校信息,表示多个学校的学生在每个学期的各科成绩,则构成四维数据。高维数据在Web系统中十分常见,例如,XML、JSON、HTML等格式均可用于表示高维数据。高维数据通常使用JSON字符串表示,可以多层嵌套。高维数据示例 下面的JSON字符串是两个学期的学生课程成绩数据。第一学期:姓名:小明,语文:80,数学:85,物理:90,姓名:韩梅梅,语文:97,数学:87,物理90:,姓名:李雷,语文:88,数学:90,物理:70,第二学期

    38、:姓名:小明,语文:89,数学:78,物理:97,姓名:韩梅梅,语文:77,数学:88,物理:89,姓名:李雷,语文:97,数学:76,物理:88,7.3.2 一维数据的处理 一维数据是简单的线性结构,在Python中可用列表表示,示例代码如下。专业=计算机应用,工程造价,会计学,影视动画 print(专业)计算机应用,工程造价,会计学,影视动画 专业0计算机应用 一维数据可用文本文件进行存储,文件可使用空格、逗号、分号等作为数据的分隔符,示例代码如下。计算机应用 工程造价 会计学 影视动画计算机应用,工程造价,会计学,影视动画计算机应用;工程造价;会计学;影视动画 在将一维数据写入文件时,除

    39、了写入数据之外,还需要额外写入分隔符。在从文件读取数据时,需使用分隔符来分解字符串 file=open(rd:data1.txt,w)#打开文本文件 专业=计算机应用,工程造价,会计学,影视动画#用列表表示一维数据 for n in range(len(专业)-1):#将最后一个数据之前的数据写入文件.file.write(专业n)#写入数据.file.write()#写入分隔符.file.write(专业n+1)#写入最后一个数据 4 file=open(rd:data1.txt)#重新打开文件 print(file.read()#输出从文件读取的数据 计算机应用 工程造价 会计学 影视动画

    40、 file.seek(0)0 zy=file.read()#将文件数据读出,存入字符串 zy 计算机应用 工程造价 会计学 影视动画 data=zy.split()#将字符串解析为列表,还原数据 data 计算机应用,工程造价,会计学,影视动画7.3.3 二维数据的处理二维数据可看作是嵌套的一维数据,即一维数据的每个数据项为一组一维数据。可用列表来表示二维数据,示例代码如下。scores=姓名,语文,数学,物理,小明,80,85,90,韩梅梅,97,87,90,李雷,88,90,70可使用CSV文件存储二维数据,从文件读取二维数据时,应注意文件末尾的换行符的处理 scores=姓名,语文,数学

    41、,物理,.小明,80,85,90,.韩梅梅,97,87,90,.李雷,88,90,70 import csv file=open(rd:scores_data.txt,w+)#打开存储二维数据的文件 writer=csv.writer(file)#创建CSV文件写对象 for row in scores:.writer.writerow(row)#将二维数据中的一行写入文件.file.seek(0)0 print(file.read()#输出从文件读取的数据姓名,语文,数学,物理 小明,80,85,90 韩梅梅,97,87,90 李雷,88,90,70 data=#创建空列表,用于存储从文件读

    42、取的二维数据 file.seek(0)#将文件指针移动到文件开头0 reader=csv.reader(csvfile)for row in reader:.if len(row)0:.data.append(row)#将非空行中的数据加入列表.data#查看还原的二维数据姓名,语文,数学,物理,小明,80,85,90,韩梅梅,97,87,90,李雷,88,90,70 for row in data:.print(%8st%st%st%s%(row0,row1,row2,row3)#数据格式化输出.7.3.4 数据排序常见的排序方法:选择排序、冒泡排序和插入排序。Python列表的sort()

    43、方法和内置的sorted()函数均可用于排序本节从算法的角度讲解各种常见的排序方法。1选择排序选择排序的基本原理:将n个数按从小到大排序。首先从n个数中选出最小的数,将其与第1个数据交换;然后对剩余的n-1个数采用同样的处理方法 经过n-1轮完成排序。2冒泡排序冒泡排序的基本原理:将n个数按从小到大排序。首先,依次比较相邻的两个数,如果后面的数更小,则交换两个数的位置,经过这样一轮处理,最大的数据到了最后;然后对剩余的前n-1个数采用同样的处理方法 经过n-1轮完成排序。3插入排序插入排序的基本原理:对n个数按从小到大排序。将第1个数放入新列表,然后依次将剩余的n-1个数插入新列表。每次在新列

    44、表中插入数据时,先查找应插入的位置,然后再插入数,保证新列表中的数始终按从小到大的顺序排列。7.3.5 数据查找1顺序查找基本原理:在线性表中按顺序查找指定元素。2二分法查找 基本原理:二分法查找适用于有序的线性表。假设线性表data中第一个元素的位置为start,最后一个元素的位置为end,在其中查找x。查找的基本步骤如下。(1)计算mid=(start+end)/2,取整数。(2)如果x等于datamid,则找到x,结束查找。(3)如果x小于datamid,令end=mid-1。如果endstart,表示线性表不包含x,结束查找,否则返回(1)。(4)如果x大于datamid,令start=mid+1。如果endstart,表示线性表不包含x,结束查找,否则返回(1)。7.4 综合实例在IDLE创建一个Python程序,将用户的id和密码以字典对象的格式存入文件,然后从文件读取数据,验证输入的id和密码是否正确。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Python3基础教程第7章课件.pptx
    链接地址:https://www.163wenku.com/p-3371888.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库