《Python基础》课件-第8章 文件操作_第1页
《Python基础》课件-第8章 文件操作_第2页
《Python基础》课件-第8章 文件操作_第3页
《Python基础》课件-第8章 文件操作_第4页
《Python基础》课件-第8章 文件操作_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

Python文件操作之文件读写FilesoperationUSINGPYTHON

——readorwrite文件的概念01文件的概念文件是存储在辅助存储器上的数据集合通常可以长久保存,也称为磁盘文件。文件的类型python3.X环境中:文件的默认编码是utf-8,字符串使用的编码是Unicode。

(1)基于字符编码,文件的内容就是字符(2)存取是以字符为单位的,输入/出字符

流的开始和结束由程序控制。(3)用通用的记事本就可以浏览,具有可

读性,因此,在存取时需要编码/解

码,从而花费一定的转换时间。文本文件(1)二进制文件直接由0,1组成,

没有统一字符编码(2)数据按照其实际占用的字节数存放(3)不需要编/解码,不存在转换时间,

但通常无法直接读懂二进制文件文件的概念如:c:\a\b\1.txt从根目录开始标识文件所在的完整路径的方式。同个文件,路径相同如:b\1.txt从所在位置开始标识,相对于程序所在目录位置建立参照引用文件所在的路径。同个文件,路径不同文件的访问相对路径:绝对路径:多级目录结构文件的概念python操作文件整体过程与使用Word软件编写一份文件的过程相同:打开文件或者新建立一个文件,读/写数据,关闭文件。用Python内置的open()函数打开一个文件。

fileobject=open(file_name[,access_mode][,buffering])文件对象文件路径和名称文件打开模式<0:默认为-1=0:关闭缓存区=1:缓存文件的行>1:缓存大小如果要读写一个文件,首先要建立一个文件对象,再利用文件对象提供的方法对文件的数据进行读写操作。文件的概念75%Conect()函数Connection对象模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式r+打开一个文件用于读写。文件指针将会放在文件的开头rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,则创建新文件wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,则创建新文件w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,则创建新文件文件打开模式——打开模式指定了打开文件后处理方式文件的概念模式描述wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,则创建新文件a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾,文件打开时采用的是追加模式。如果该文件不存在,则创建新文件用于读写ab+以二进制格式打开一个文件用于读写追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,则创建新文件用于读写小结

文件的类型文本文件二进制文件文件的访问绝对路径相对路径文件的打开模式读模式写模式追加模式010203文件的打开与关闭02文件的打开与关闭fileobject=open(file_name[,access_mode][,buffering])属性描述closed如果文件已被关闭返回True,否则返回Falsemode返回被打开文件的访问模式name返回文件的名称buffer返回当前文件的缓冲区对象打开文件f1=open(“says.txt”,”r”)等价于:f1=open("E:/python/ptest/filesOpera/files/says.txt","r")#1.在当前目录下编写程序filedemo1.py,以读模式打开与源程序处于同一目录的says.txt文件例1:设当前目录:E:\python\ptest\filesOpera\files,下有两个文本文件:famous.txt和says.txt,一个空文件夹writefiles打开文件#2.在上一级目录下编写程序filedemo2.py,以二进制读模式打开处于源程序下一级目录的says.txt文件f2=open("files/says.txt","rb")等价于:f2=open("E:/python/ptest/filesOpera/files/says.txt","r")打开文件#3.writefiles下编写程序filedemo3.py,以写模式打开上一级目录的hello.txt文件f3=open("../hello.txt","w")等价于:f3=open("E:/python/ptest/filesOpera/files/hello.txt","w")文件不存在,则创建新文件文件存在,则覆盖原文件关闭文件文件打开状态下才能对文件进行读或取操作同样:文件关闭才能将数据写入磁盘利用python内置函数close()来关闭文件如:fileobject.close()关闭文件75%Connection对象Cursor对象需要注意的是,即使写了关闭文件的代码,也无法保证文件一定能够正常关闭。例如,如果在打开文件后和关闭文件之前发生了错误,导致程序崩溃,这时文件就无法正常关闭。在管理文件对象时推荐使用with关键字,可以有效避免这个问题。withopen(filename,mode)asfp:

文件对象操作语句;小结

打开文件

fileobject=open(文件路径,读写模式)关闭文件

fileobject.close()

或with语句0102文件的读写03读文件91%51fileobject.read()fileobject.read(n)fileobject.readline(n)fileobject.readlines()格

式read():一次性读入文件中所有内容。read(n):读取指定的n个字符;若n大于文件长度,则读取所有内容。readline(n):若n没有,则读取一行,若n有,则读取一行中的n个字符。Readlines():一次性将文件的所有内容全部读出,以列表形式返回。

一般再次使用for循环从readlines()中提取每一行。withopen("files/famous.txt")asfp:print(fp.read())fp=open("files/famous.txt")print(fp.read())fp.close()读文件例2:读取当前目录下files文件夹下的famous.txt中的内容并输出。读文件#read(n):读取从文件头开始的前5字符withopen("files/famous.txt")asfp:print(fp.read(5))#readline():读取文件中第一行withopen("files/famous.txt")asfp:print(fp.readline())#readline(n):读取一行中的前12个字符withopen("files/famous.txt")asfp:print(fp.readline(12))#readlines():读取文件中所有行withopen("files/famous.txt")asfp:print(fp.readlines())Readlines()返回类型是列表,回车以\n显示,一般用for循环输出每一行内容。写文件fileobject.write(s)

S是一个待写入的字符串,写入多行时可以通过\n控制换行。fileobject.writeLines(s)

S可以是元组,列表,集合类型数据,写入多行时可以通过\n控制换行格

式写文件#以追加模式在原有文件后添加内容withopen("files/hello.txt","a")asfp:fp.write(":IamaChinses\n你是美国人:YouareanAmerican")#以写模式创建文件并写入内容withopen("files/hello.txt","w")asfp:fp.write("我是中国人")1.write()写文件2.writelines()#将列表内容写入courses.txt新文件str=("java程序设计\n","python程序设计\n","数据库应用")withopen("files/courses.txt","w")asfp:fp.writelines(str)小结

读文件fileobject.read()fileobject.read(n)fileobject.readline(n)fileobject.readlines()写文件fileobject.write()fileobject.writelines()0102CSV文件的读写04数据组织维度一维数据是最简单的数据组织类型,有多种存储格式,常用分隔符分隔(1)空格分隔如:中国美国日本德国法国英国(2)用逗号分隔如:中国,美国,日本,德国,法国,英国(3)用特殊符号分隔如:中国;美国;日本;德国;法国;英国二维数据,也称表格数据,由关联关系数据构成,采用表格方式组织。高维数据由键值对类型的数据构成,采用对象方式组织,属于整合度更好的数据组织方式。高维数据在网络系统中十分常用,html,xml,json等都是高维数据组织的语法结构。数据组织维度CSV文件CSV(Comma-SeparatedValues),是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的。csv文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列,通常都是纯文本文件。建议使用Word或记事本来开启,在另存为新文档后用Excel开启也是方法之一。写CSV文件格式:csv写入对象.writerow(数据)例:在当前目录的files文件夹下创建“csvdemo.csv”文件,写入课程信息读CSV文件格式:csv.reader(文件对象变量)例:读取刚创建的“csvdemo.csv”文件,并将信息打印输出。小结

数据的维度一维数据二维数据

高维数据CSV文件CSV文件的读写csv写入对象.writerow(数据)csv.reader(文件对象变量)010203JSON文件的读写05JSON文件JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。它使得人们很容易地进行阅读和编写,同时也方便了机器进行解析和生成,适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。格式:json.dump(数据对象,文件对象变量)可以将python数据写入json文件,数据对象可以是python中任意的数据类型写JSON文件例:在当前目录的files文件夹下创建“jsondemo.json”文件,写入课程信息读JSON文件格式:json.load(文件对象变量)例:读取刚创建的“jsondemo.json”文件,并将信息打印输出。小结

读JSON文件json.load(文件对象变量)写JSON文件json.dump(数据对象,文件对象变量)0102Python文件操作之OS模块FilesoperationUSINGPYTHON

——

osmodule利用OS模块操作文件01OS模块简介OS模块:operationsystemPython的OS模块是Python内置的一个模块用来处理文件及目录OS模块功能强大,涵盖了文件系统所有的处理方法OS模块在使用之前需要导入。75%Conect()函数Connection对象属性描述name显示当前使用平台,Windows->‘nt’,Linux->'posix'pathsep显示用于分割文件路径的字符串sep显示操作系统特定的路径分隔符,Windows下为“\\”,Linux下为“/”linesep显示当前平台使用的行终止符,Windows下为“\t\n”,Linux下为“\n”environ显示获取的系统环境变量值OS模块简介1.系统属性OS模块简介1.查看当前电脑使用平台2.查看当前电脑系统环境变量3.查看当前电脑操作系统特定的路径分隔符importosprint()importosprint(os.environ)importosprint(os.pathsep)利用OS模块操作文件方法描述listdir('dirname')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印rename("oldname","new")重命名文件/目录remove()删除一个文件stat('path/filename')获取文件/目录信息path.isfile(path)如果path是一个存在的文件,返回True,否则返回False2.文件操作利用OS模块文件75%Connection对象Cursor对象1.列出当前目录下files文件夹下的所有文件

2.将files文件夹下的hello.txt文件重命名为helloworld.txt3.删除files文件夹下的helloworld.txt文件。importosprint(os.listdir("files"))importosos.rename("files/hello.txt","files/helloworld.txt")importosos.remove("files/helloworld.txt")文件操作02小结

系统属性

name

environ等文件操作

列举目录中所有文件

判断文件是否存在文件重命名删除文件等0102利用OS模块操作文件利用OS模块操作文件夹02利用OS模块文件夹方法描述mkdir('dirname')生成单级目录,相当于shell中的mkdirdirname命令makedirs('dir1/dir2')可生成多层递归目录rmdir('dirname')删除单级空目录,若目录不为空则无法删除,报错,相当于shell中的rmdirdirname命令removedirs('dirname1')若目录为空,则删除,并递归到上一级目录,如若上一级目录也为空,则删除,依此类推3.文件夹操作利用OS模块文件夹91%511.在当前目录的files文件夹下创建文件夹dir01,dir02,并在dir02文件夹下再创建一个文件夹dir022,之后在其中创建一个文件test.txt,并在其中写入“timeisflying....”importosos.mkdir(“files/dir01”)#创建单级目录os.makedirs(“files/dir02/dir022”)#创建多级目录withopen(“files/dir02/dir022/test.txt”,“w”)asfp:#在目录中创建文件并写入内容fp.write("timeisflying...")利用OS模块文件夹91%512.删除dir02文件夹及其中文件importosos.remove(“files/dir02/dir022/test.txt”)#删除多级目录下的文件os.removedirs(“files/dir02/dir022“)#删除多级目录注:当被删除的文件夹下有文件时,无法进行删除操作。文件操作02小结

创建文件夹创建单级文件夹创建多级文件夹

删除文件夹删除单级文件夹删除多级文件夹0102利用OS模块操作文件夹利用OS模块操作路径03利用OS模块操作路径方法描述getcwd()获取当前工作目录,即当前Python脚本工作的目录路径chdir("dirname")改变当前脚本工作目录,相当于shell下的cd命令curdir返回当前目录字符串名('.')pardir获取当前目录的父目录字符串名('..')path.abspath(path)返回path规范化的绝对路径path.split(pa

温馨提示

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

最新文档

评论

0/150

提交评论