




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 文件内容提纲5.1 文件和文件路径 25.2 文件的读写35.3 文件定位4355.4 文件相关函数及综合应用15.5 CSV文件操作引例引例程序员经常要进行目录和文件的操作,例如建立、删除目录,建立、删除文件,读写文件等。 import os os.getcwd() #以上语句获取当前工作目录d:Python34 os.mkdir(temp) #以上语句在当前目录下创建一个子目录temp os.chdir(temp)#以上语句切换当前目录(即工作目录)到temp子目录下 os.getcwd()d:Python34temp tempFile=open(ws.txt,w)#以上语句以写方
2、式打开一个文件,如果这个文件不存在就创建它 str=hellonworld#创建一个字符串,以备写入文件 tempFile.write(str)#将str写入文件 tempFile.close()#关闭文件 newFile=open(ws1.txt,w)#新创建一个文件 tempFile=open(ws.txt,r)#打开ws.txt文件 str=tempFile.read(5)#读取5个字符 newFile.write(str)#将这5个字符写入新文件ws1.txt tempFile.close() newFile.close()#以上两行关闭两个打开的文件 os.remove(ws.txt
3、)#删除ws.txt文件5.1 文件和文件路径5.1 文件和文件路径5.1.1 os.path.join()和os.mkdir()在Windows上,目录分隔符为“”,而在Linux或OS X中为“/”,如果想要程序正常运行在所有的操作系统上,在编写Python程序时,必须处理这两种情况。一个好的办法就是在程序中不使用“/”或“”做路径分隔符,而用os.path.join()函数来处理路径。将单个文件和路径上的目录名称的字符串传递给os.path.join(),不管是什么操作系统,os.path.join()都返回一个与此操作系统相对应的文件路径的字符串5.1.2 绝对路径和相对路径绝对路径总
4、是从根目录开始,通过一个绝对路径能唯一定位到一个确定的目录下,比如:“D:programsjava”一个绝对路径,“D:”表示Windows系统下D盘根目录,“programs”是该根目录下的一个子目录,“java”是“programs”目录下的一个子目录,因此该路径定位到D盘根目录下的programs目录下的java目录下。5.1 文件和文件路径5.1.3 查看当前目录os.getcwd()在涉及目录操作的过程中,始终要有“当前工作目录(又叫工作目录)”这个概念,知道所有相对路径都基于当前工作目录。有时我们不清楚当前目录或忘记了当前目录是什么,若要进行目录和文件的创建,则要搞清楚当前目录是什
5、么,可用os.getcwd()查看当前目录。5.1 文件和文件路径5.1.4 改变当前目录os.chdir()我们可以在一个目录下操作其他目录,这个时候可以用绝对路径的方式,但如果涉及的操作很频繁,为了避免输入较长的绝对路径,可以把要操作的路径设置为“当前路径”。比如现在D:Python34目录下,但要在D:wsdoc目录下进行各种操作,这个时候可以用以下方式将此目录设为当前目录。5.1 文件和文件路径5.1.5 os.remove()及os.rmdir()os.remove()为删除指定文件,比如os.remove(“ws.txt”)删除当前目录下的ws.txt文件;os.rmdir()为删
6、除指定目录,比如os.rmdir(“wsdoc”)删除当前目录下的ws子目录下的doc子目录。5.1 文件和文件路径5.1.6 rename()函数 rename()函数需要两个参数,当前的文件名和新文件名。语法:os.rename(current_file_name, new_file_name)例如:下例将ws.txt重命名ws1.txt。 import os os.rename(ws.txt,ws1.txt)5.1 文件和文件路径5.1.7 表示当前目录的“.”和表示上级目录的“.”“.”和“.”分别代表当前目录和上一级目录。例如,在D:Python34ws目录下,使用os.mkdir(
7、“.doc”)表示在当前目录下创建一个子目录doc。不过当前目录通过可以省略,默认情况下你使用的每一条涉及路径的指令都是相对于当前目录的,所以上述语句可以改为os.mkdir(“doc”)。5.1 文件和文件路径5.1.8 os.walk()方法此方法用于在目录树中游走输出在目录中的文件名,向上或者向下。在UNIX、Windows中有效。walk()方法语法格式如下:os.walk(top, topdown=True, onerror=None, followlinks=False)5.2 文件的读写5.2.1 open()函数用Python内置的open()函数打开一个文件,创建一个file
8、对象,相关的函数就可以调用它进行读写语法:file object = open(file_name , access_mode, buffering)5.2 文件的读写5.2 文件的读写5.2.2 read()方法read()从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不仅仅是文本。语法:fileObject.read(count);在这里,参数count是要从已打开文件中读取的字节计数。该函数从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。5.2 文件的读写5.2.3 write()方法wr
9、ite()可将任何字符串写入一个打开的文件。需要注意的是,Python字符串可以是二进制数据,而不仅仅是文本。write()函数不会在字符串的结尾添加换行符(n):语法:fileObject.write(string);在这里,被传递的参数是要写入已打开文件的内容。以写方式打开文件,如果文件不存在,将在当前文件夹中创建文件。5.2 文件的读写5.2.4 通用新行格式文件的输入和输出修饰符为U修饰符,这个符号特别有用。在不同的操作系统中,某些特殊字符或字符集在写入文件时会发生变化。其中一个特殊字符是换行符,它位于字符串尾,表示下一个字符从文本的下一行开始。在操作系统发展过程中,有多种方法来表示另
10、一行的开始,比如“n”和“r”,5.2 文件的读写5.3 文件的定位用open()打开一个文件后,有一个指针指向文件的开始位置,read()函数读取一个文件后,指针将向后移动相应的数目。假设ws.txt中的内容为:hello world5.3 文件的定位请看下面的代码执行情况: fo=open(ws.txt) str=fo.read(2) print(str)he # 此处输出两个字符,文件指针向后移动两个位置。 str=fo.read(2) print(str)ll # 此处输出两个字符,文件指针再次向后移动两个位置。 str=fo.read(3) print(str)o w # 此处输出三
11、个字符(注意o与w间有一个空格),文件指针向后移动三个位置。 fo.close()5.3 文件的定位5.3.1 tell()函数tell()函数告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。例如: fo=open(ws.txt) fo.tell()0 文件刚打开,指针指向文件开始位置。 str=fo.read(2) fo.tell()2 读取2个字符后的指针位置 str=fo.read(3) fo.tell()5 读取5个字符后的指针位置 fo.close()5.3 文件的定位5.3.2 seek()函数seek(offset ,from)函数改变当前文件的位置
12、,offset变量表示要移动的字节数,from变量指定开始移动字节的参考位置。如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。5.4 文件、目录相关函数及示例5.4.1 file对象函数file 对象使用open函数来创建,下面列出了file对象常用的函数。(1)file.close()关闭文件。关闭后文件不能再进行读写操作。(2)file.flush()刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动地等待输出缓冲区写入。(3)file.fileno()返回一个整型的
13、文件描述符(file descriptor FD 整型), 可以用在如os模块的read函数等一些底层操作上。5.4 文件、目录相关函数及示例(4)file.isatty()如果文件连接到一个终端设备返回 True,否则返回 False。(5)file.next()返回文件下一行。(6)file.read(size)从文件读取指定的字节数,如果未给定或为负则读取所有。(7)file.readline(size)读取整行,包括 n 字符。(8)file.readlines(sizeint)读取所有行并返回列表,若给定sizeint0,返回总和大约为sizeint字节的行, 实际读取值可能比siz
14、eint较大, 因为需要填充缓冲区。(9)file.seek(offset, whence)设置文件当前位置。5.4 文件、目录相关函数及示例(10)file.tell()返回文件当前位置。(11)file.truncate(size)截取文件,截取的字节通过size指定,默认为当前文件位置。(12)file.write(str)将字符串写入文件,没有返回值。(13)file.writelines(sequence)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。5.4 文件、目录相关函数及示例5.4.2 目录常用函数下面是常用的目录操作函数。(1)os.getcwd()得
15、到当前工作目录,即当前Python脚本工作的目录路径。(2)os.listdir()返回指定目录下的所有文件和目录名。(3)os.remove(filename)删除文件filename。(4)os.removedirs()删除多个目录。(5)os.path.isfile()检验给出的路径是否是一个文件。5.4 文件、目录相关函数及示例(6)os.path.isdir()检验给出的路径是否是一个目录。(7)os.path.isabs()判断是否是绝对路径。(8)os.path.exists()检验给出的路径是否存在。(9)os.path.split() 将参数指定的路径分割成目录和文件名二元组
16、返回5.4 文件、目录相关函数及示例5.4.3 os模块综合应用示例下面通过一个综合例子来熟悉os模块中的函数功能。编写一个程序,在目录树中搜索包含指定字符串的文本文件,并建立文件列表及文件所在目录的列表。搜索从当前目录开始,沿着目录树向下搜索,直到全部搜索完成。思路如下:在每一个目录中,检查该目录下的每个文件,判断其是否为文本文件(在Windows系统中,扩展名为.txt)。如果是文本文件,则打开,读取其中的内容,然后搜索指定字符串,如果找到,则将文件添加至文件列表,同时将所在目录添加到目录列表。完成搜索后,输出找到的内容。5.5 CSV文件操作CSV文件不是一种独立的文件类型,而是一种有特
17、殊格式的文本文件,可以使用文本文件函数和方法。CSV文件用于纯文本存储表格数据。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。5.5 CSV文件操作5.5.1 CSV模块Python提供了CSV模块来解决处理CSV文件中的各种问题,CSV模块能够兼容多种来源并且以简单的方式读写CSV文件。CSV.reader对象读取文件,CSV.writer则写文件。5.5 CSV文件操作要将Excel表格转换成一个CSV格式的文件,具体操作如下。(1
18、)单击“文件”菜单,选取“另存为”选项。(2)在“保存类型”中找到“CSV(逗号分隔)(*.csv)”。(3)保存,如图5-6所示。单击“保存”按钮后可能会弹出图5-7所示的提示信息,这时单击“是(Y)”即可,回到工作目录,可以看到转换好的CSV文件。5.5 CSV文件操作5.5.2 CSV Reader我们用reader构造函数方法创建CSV.reader对象。需要注意的是,reader方法的参数是文件对象,也就是说,必须以只读方式打开文件并创建文件对象。reader构造函数返回reader对象,该对象可以用来遍历文件。与文件对象相似,可以用于遍历文本文件的内容,不过不同之处在于CSV.reader每次循环返回文件中的一行。并且从循环返回的值不是字符串,而是字符串列表,列表中每个元素代表行中的一个字段。5.5 CSV文件操作5.5.3 CSV Writer与reader一样,使用writer的构造函数来创建CSV.writer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中日幼儿教育比较分析
- 量具使用规范培训
- 古尔邦节酒店活动方案
- 古筝销售活动方案
- 古镇新春活动方案
- 叮咚银行活动方案
- 台球促销端午活动方案
- 司仪大赛活动方案
- 吃饭聚财活动方案
- 各大学创新活动方案
- 职业技术学院2024级智能交通技术专业人才培养方案
- 第15课 明朝的统治 课件 统编版七年级历史下册
- 2025年统计学期末考试题库:数据分析基础计算与应用试题
- 【北京市人社局】2025年北京市人力资源市场薪酬数据报告(一季度)
- 工艺管道气压实验方案
- 20吨双梁行车标准尺寸
- 过敏性皮炎个案护理
- 人教版(2024)七年级下册英语UNIT 5 Here and Now 综合素质评价测试卷(含答案)
- 第7课《谁是最可爱的人》课件-2024-2025学年统编版语文七年级下册
- 宫颈癌的早期症状:及时发现早期宫颈癌的线索
- DB11-T 896-2020 苹果生产技术规程
评论
0/150
提交评论