Python程序设计基础项目化教程 课件 项目七 文件_第1页
Python程序设计基础项目化教程 课件 项目七 文件_第2页
Python程序设计基础项目化教程 课件 项目七 文件_第3页
Python程序设计基础项目化教程 课件 项目七 文件_第4页
Python程序设计基础项目化教程 课件 项目七 文件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

《Python语言程序设计》项目七文件Contents掌握os模块的使用掌握Python文件的读写掌握Python数据的处理os模块的使用PART01通过os模块可以方便地使用操作系统的相关功能。使用os模块的功能前,需要先通过“importos”将其导入。查看系统平台使用“”可以查看当前操作系统的名字,Windows用字符串“nt”表示,Linux用字符串“posix”表示。获取环境变量值os.environ是一个包含所有环境变量值的映射对象,在Python控制台下直接输入os.environ即可查看当前所有环境变量。如果要查看某一个环境变量值,则可以采用以下方式:os.environ[key]或os.getenv(key)例:查看HOME环境变量的值。os.environ['HOME']或os.getenv('HOME')os模块获取当前系统平台路径分隔符不同操作系统可能会使用不同的路径分隔符。例如,Windows系统以'\\'作为路径分隔符,而Linux系统以'/'作为路径分隔符。使用“os.sep”可以获取当前系统平台的路径分隔符。获取当前工作目录使用os.getcwd函数可以获取当前工作目录。如果要访问当前工作目录下的data子目录中的test.dat文件,则除了可以使用'data'+os.sep+'test.dat'或'data{sep}test.dat'.format(sep=os.sep)这种相对路径形式外,还可以写为如下的绝对路径形式:os.getcwd()+os.sep+'data'+os.sep+'test.dat'或'{cwd}{sep}data{sep}test.dat'.format(cwd=os.getcwd(),sep=os.sep)如果当前工作目录是"D:\\Python\\Python37",则得到的绝对路径为"D:\\Python\\Python37\\data\\test.dat"。os模块获取文件和目录列表使用os.listdir函数可以获取指定路径下的所有文件和目录的名字,os.listdir函数的语法格式为:os.listdir(path='.')其中,path是要获取文件和目录名字的路径,默认值'.'表示获取当前路径下的所有文件和目录的名字。返回值是由path路径下所有文件和目录名字组成的列表。例如:os.listdir()os.listdir(os.getcwd()+os.sep+'DLLs')会分别获取到当前路径下所有文件和目录名字组成的列表,以及当前路径的DLLs目录下所有文件和目录名字组成的列表。os模块创建目录使用os.mkdir和os.makedirs函数可以根据指定路径创建目录。os.mkdir和os.makedirs函数的语法格式分别为:os.mkdir(path)os.makedirs(path)其中,path指明了要创建的目录。例如:os.mkdir(os.getcwd()+os.sep+'newdir')os.makedirs(os.getcwd()+os.sep+'subdir1'+os.sep+'subdir2')程序执行完毕后,第1行代码将在当前工作目录下创建一个名为newdir的目录;第2行代码将在当前工作目录下先创建一个名为subdir1的目录,再在subdir1目录下创建一个名为subdir2的目录。os模块删除目录使用os.rmdir函数可以删除指定路径的最后一层目录。os.rmdir函数的语法格式为:os.rmdir(path)其中,path指定了要删除的目录。例如:os.rmdir(os.getcwd()+os.sep+'newdir')程序执行完毕后,会将当前工作目录下的newdir目录删除。os模块删除多级目录如果需要删除指定路径的最后多层目录,可以使用os.removedirs函数。os.removedirs函数的语法格式为:os.removedirs(path)其中,path指定了要删除的目录。os.removedirs函数会从指定路径中的最后一个目录开始逐层向前删除,直到指定路径中的所有目录都删除完毕或者遇到一个不为空的目录。例如:os.removedirs(os.getcwd()+os.sep+'subdir1'+os.sep+'subdir2')首先会删除当前工作目录的subdir1目录下的subdir2子目录;然后删除当前工作目录下的subdir1目录;最后会因当前工作目录不是空目录而停止删除操作,os.removedirs函数执行结束。os模块相对路径、绝对路径相对路径是指相对于当前工作目录指定的路径,其中“.”表示当前目录,而“..”表示上一层目录;绝对路径是指从最顶层目录开始所给出的完整的路径。例如:如果要访问当前工作目录下名字为DLLs的目录,既可以使用相对路径'.\\DLLs'或'DLLs',也可以使用绝对路径'D:\\Python\\Python37\\DLLs';如果要访问当前工作目录的上一层目录,既可以使用相对路径'..',也可以使用绝对路径'D:\\Python'。os模块获取指定相对路径的绝对路径使用os.path.abspath函数可以获取指定相对路径的绝对路径,其语法格式为:os.path.abspath(path)其作用是获取path所对应的绝对路径。例如:print(os.path.abspath('..'))

print(os.path.abspath('DLLs'))

D:\PythonD:\Python\Python37\DLLsos模块获取文件所在目录的路径使用os.path.dirname可以获取文件所在目录的路径,其语法格式为:os.path.dirname(path)其作用是返回path中去除文件名后的路径。例如:print(os.path.dirname('D:\\Python\\Python37\\LICENSE.txt'))D:\Python\Python37os模块获取指定路径的目录名或文件名使用os.path.split函数可以将指定路径分解成路径名和目录/文件名两部分:os.path.basename(path)其作用是返回path中的文件名。例如:print(os.path.basename('D:\\Python\\Python37\\LICENSE.txt'))LICENSE.txtos模块获取文件名使用os.path.basename可以获取指定路径中的文件名,其语法格式为:os.path.split(path)其作用是返回一个由path分解得到的路径名和目录/文件名组成的元组。例如:print(os.path.split(os.getcwd()+os.sep+'LICENSE.txt'))('D:\\Python\\Python37','LICENSE.txt')os模块分离文件扩展名使用os.path.splitext函数可以将扩展名从指定路径中分离出来,其语法格式为:os.path.splitext(path)其作用是将path所指定的路径分解为一个元组(root,ext),其中ext是扩展名,root是扩展名前面的内容。例如:print(os.path.splitext('d:\\Python\\Python37\\LICENSE.txt'))

('D:\\Python\\Python37\\LICENSE','.txt')os模块路径连接使用os.path.join函数一个路径的多个组成部分用系统路径分隔符连接在一起,其语法格式为:os.path.join(path,*paths)其作用是将各参数用系统路径分隔符连接得到的结果返回。例如:print(os.path.join('D:\\Python','Python37','LICENSE.txt'))D:\Python\Python37\LICENSE.txtos模块判断指定路径目标是否为文件使用os.path.isfile函数可以判断指定路径目标是否为文件。os.path.isfile函数的语法格式为:os.path.isfile(path)其作用是判断path所指定的目标是否是文件。如果是文件,则返回True;否则,返回False。例如:dir=os.getcwd()#dir保存了当前工作目录file=dir+os.sep+'LICENSE.txt'#file保存了当前工作目录下LICENSE.txt#文件的路径print(dir+'是文件:'+str(os.path.isfile(dir)))print(file+'是文件:'+str(os.path.isfile(file)))D:\Python\Python37是文件:FalseD:\Python\Python37\LICENSE.txt是文件:Trueos模块判断指定路径目标是否为目录使用os.path.isdir函数可以判断指定路径目标是否为目录,其语法格式为:os.path.isdir(path)其作用是判断path所指定的目标是否是目录。如果是目录,则返回True;否则,返回False。例如:dir=os.getcwd()#dir保存了当前工作目录file=dir+os.sep+'LICENSE.txt'#file保存了当前工作目录下LICENSE.txt#文件的路径print(dir+'是目录:'+str(os.path.isdir(dir)))print(file+'是目录:'+str(os.path.isdir(file)))D:\Python\Python37是目录:TrueD:\Python\Python37\LICENSE.txt是目录:Falseos模块判断指定路径是否存在使用os.path.exists函数可以判断指定路径是否存在,其语法格式为:os.path.exists(path)其作用是判断path所指定的路径是否存在。如果存在,则返回True;否则,返回False。例如:path1=os.getcwd()#path1保存了当前工作目录path2=path1+os.sep+'mytest'#path2保存了当前工作目录下mytest子目#录的路print(path1+'存在:'+str(os.path.exists(path1)))print(path2+'存在:'+str(os.path.exists(path2)))D:\Python\Python37存在:TrueD:\Python\Python37\mytest存在:Falseos模块判断指定路径是否为绝对路径使用os.path.isabs函数可以判断指定路径是否为绝对路径,其语法格式为:os.path.isabs(path)其作用是判断path所指定的路径是否为绝对路径。如果是绝对路径,则返回True;否则,返回False。例如:print('..是绝对路径:'+str(os.path.isabs('..')))print(os.getcwd()+'是绝对路径:'+str(os.path.isabs(os.getcwd())))..是绝对路径:FalseD:\Python\Python37是绝对路径:Trueos模块文件读写PART02程序中的数据都存储在内存中,当程序执行完毕后,内存中的数据将丢失。文件可以用来进行数据的长期保存。使用open函数可以打开一个要做读/写操作的文件,其常用形式为::open(filename,mode='r')其中,filename是要打开文件的路径;mode是文件打开方式,不同文件打开方式可以组合使用,默认打开方式为'r'(等同于'rt')。使用open函数打开文件后会返回一个文件对象,利用该文件对象可完成文件中数据的读写操作。文件读写文件打开方式模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。b二进制模式。t文本模式(默认)。+打开一个文件进行更新(可读可写)。文件读写常用文件打开方式组合模式描述r+打开一个文件用于读写。文件指针将会放在文件的开头。w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。文件读写open函数使用示例:f=open('D:\\Python\\test.txt','w+')即以“w+”方式打开文件“D:\\Python\\test.txt”,并将返回的文件对象赋给f,后面可用f对该文件进行读写操作。文件读写文件关闭使用open函数打开文件并完成读/写操作后,必须使用文件对象的close方法将文件关闭。例如,假设有一个文件对象f,则在对f所对应的文件完成读/写操作后,应使用“f.close()”关闭文件。f=open('D:\\Python\\test.txt','w+')print('文件已关闭:',f.closed)f.close()print('文件已关闭:',f.closed)文件已关闭:False文件已关闭:True文件读写write方法使用文件对象的write方法可以将字符串写入到文件中,其语法格式为:f.write(str)其中,f是open函数返回的文件对象,str是要写入到文件中的字符串。f.write函数执行完毕后将返回写入到文件中的字符数。例如charnum=0withopen('D:\\Python\\test.txt','w+')asf:charnum+=f.write('Python是一门流行的编程语言!\n')charnum+=f.write('我喜欢学习Python语言!')print('总共向文件中写入的字符数:%d'%charnum)总共向文件中写入的字符数:32文件读写read方法使用文件对象的read方法可以从文件中读取数据,其语法格式为:f.read(n=-1)其中,f是open函数返回的文件对象;n指定了要读取的字节数,默认值-1表示读取文件中的所有数据。read方法将从文件中读取的数据返回。例如withopen('D:\\Python\\test.txt','r')asf:content1=f.read()content2=f.read()print('content1:\n%s'%content1)print('content2:\n%s'%content2)文件读写readline方法使用文件对象的readline方法可以从文件中每次读取一行数据,其语法格式为:f.readline()其中,f是open函数返回的文件对象。readline方法将从文件中读取的一行数据返回。例如ls=[]withopen('D:\\Python\\test.txt','r')asf:ls.append(f.readline())ls.append(f.readline())print(ls)['Python是一门流行的编程语言!\n','我喜欢学习Python语言!']文件读写readlines方法使用文件对象的readlines方法可以从文件中按行读取所有数据,其语法格式为:f.readlines()其中,f是open函数返回的文件对象。readlines方法将从文件中按行读取的所有数据以列表形式返回。例如withopen('D:\\Python\\test.txt','r')asf:ls=f.readlines()print(ls)['Python是一门流行的编程语言!\n','我喜欢学习Python语言!']文件读写seek方法使用seek方法可以移动文件指针,从而实现文件的随机读写,其语法格式为:f.seek(pos,whence=0)其中,f是open函数返回的文件对象;pos是要移动的字节数;whence是参照位置,默认值0表示以文件首作为参照位置,1和2分别表示以当前文件指针位置和文件尾作为参照位置。seek方法没有返回值。例如withopen('D:\\Python\\test.txt','r')asf:f.seek(6,0)print(f.readline())是一门流行的编程语言!文件读写数据的处理PART03一维数据一维数据是指数据元素的值由一个因素唯一确定。例如:对于N名学生在语文考试中的成绩,每个成绩由学生唯一确定,学生1的考试成绩为成绩1、学生2的考试成绩为成绩2、…、学生N的考试成绩为成绩N。数据的处理一维数据对于一维有序数据,可以使用列表存储;对于一维无序数据,可以使用集合存储。例如:对于5名学生的语文课成绩,可以使用如下形式的列表存储:data1D=[90,70,95,98,65]数据的处理二维数据二维数据是指数据元素的值由两个因素共同确定。例如:对于M名学生在语文、数学、英语三门课程考试中的成绩,由学生和课程共同确定,学生1在语文、数学和英语课上的考试成绩分别为成绩11、成绩12和成绩13;……;学生M在语文、数学和英语课上的考试成绩分别为成绩M1、成绩M2和成绩M3。数据的处理二维数据二维数据可以看作是由多个一维数据组成。数据的处理二维数据通过二维列表可以存储二维数据。例如:要使用二维列表存储5名学生在3门课程上的成绩,需要写成如下形式:data2D=[[90,98,87],#第1名学生的3门课程成绩[70,89,92],#第2名学生的3门课程成绩[95,78,81],#第3名学生的3门课程成绩[98,90,95],#第4名学生的3门课程成绩[65,72,70]]#第5名学生的3门课程成绩数据的处理CSV文件存储示例对于一维数据,使用CSV文件存储的结果为:90,70,95,98,65对于二维数据,使用CSV文件存储的结果为:90,98,8770,89,9295,78,8198,90,9565,72,70数据的处理CSV文件的写操作csv模块的writer方法可以生成一个writer对象,使用该对象可以将数据以逗号分隔的形式写入到CSV文件中。csv.writer方法的语法格式为:csv.writer(csvfile)其中,csvfile是一个具有write方法的对象。如果将open函数返回的文件对象作为实参传给csvfile,则调用open函数打开文件时必须加上一个关键字参数“newline=''”。数据的处理CSV文件的写操作生成writer对象后,就可以使用csv模块的writerow和writerows方法向CSV文件中写入数据。cs

温馨提示

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

评论

0/150

提交评论