资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
PythonPython能够处理操作系统下的文件结构,能够处理操作系统下的文件结构,包括文本文件、二进制文件和其他类型的文包括文本文件、二进制文件和其他类型的文件(如件(如ExcelExcel文件、文件、WordWord文件等)文件等)。第7章 文件操作目录第第7 7章章 文件文件操作操作7.1 7.1 文件的打开和关闭文件的打开和关闭 7.1.1 7.1.1 文件的文件的打开函数打开函数openopen()() 7.1.2 7.1.2 文件的关闭方法文件的关闭方法close()close()7.2 7.2 文件的操作文件的操作 7.2.1 7.2.1 读文件读文件 7.2.2 7.2.2 写文件写文件 7.2.3 7.2.3 在文件中定位在文件中定位7.3 CSV7.3 CSV文件文件 7.3.1 7.3.1 CSVCSV文件简介文件简介 7.3.2 7.3.2 CSVCSV文件访问文件访问7.4 7.4 习题习题7.1 7.1 文件的打开和关闭文件的打开和关闭7.1.1 文件的打开函数open()使用内置的open()函数创建文件对象的语法格式如下:open(file_name, access_mode , buffering , encoding)一般把文件对象赋值给一个变量(例如,fileObject),称为文件对象变量。语法格式如下:fileObject= open(file_name, access_mode , buffering , encoding)7.1 7.1 文件的打开和关闭文件的打开和关闭【例7-1】打开一个文件并显示相关属性。# 用追加方式打开文件,使用绝对路径,目录之间用双斜线分隔# 创建文件对象并赋值给变量成为文件对象名file = open(D:Python练习demo.txt, at+, -1, utf-8)# 输出文件对象的相关属性print(文件名:, file.name)print(文件对象类型:, type(file)print(文件缓冲区:, file.buffer)print(文件访问模式:, file.mode)print(文件编码方式:, file.encoding)print(文件换行方式:, file.newlines)print(文件是否已关闭:, file.closed)file.close()print(执行close()方法后)print(文件是否已关闭:, file.closed)运行程序显示如下:文件名: D:Python练习demo.txt文件对象类型: 文件缓冲区: 文件访问模式: at+文件编码方式: utf-8文件换行方式: None文件是否已关闭: False执行close()方法后文件是否已关闭: True7.1 7.1 文件的打开和关闭文件的打开和关闭7.1.2 文件的关闭方法close()close()方法的语法格式如下:fileObject.close()其中,fileObject是文件对象名。文件关闭后就不能访问该文件对象的属性和方法了。如果在一个文件关闭后还对其进行操作,将产生ValueError。7.1 7.1 文件的打开和关闭文件的打开和关闭7.2 7.2 文件的操作文件的操作7.2.1 读文件1 .用read()方法读取文本文件对象的read()方法用于从当前位置读取指定数量的字符,并以字符串形式返回,语法格式如下:fileObject.read(size)或变量名= fileObject.read(size)7.2 7.2 文件的操作文件的操作【例7-2】read()方法应用示例。file1=open(D:Python练习Abc1.txt, r) #只读模式打开文本文件,并把文件对象赋值给变量text=file1.read() # 用文件对象调用read()方法,读取文件的全部内容,并赋值给字符串变量textprint(Abc1.txt:)print(text) # 输出文本文件中的所有内容file1.close() # 关闭文件file2=open(D:Python练习dai.txt, r+) # 打开另外一个文件dai.txttext = file2.read(50) # 读取文件中的前50个字节,并赋值给字符串变量textprint(dai.txt:)print(text) # 输出文本文件中的前50个字节内容file2.close() # 关闭文件执行程序前,先用记事本创建两个文本文件Abc1.txt、dai.txt,并保存在“D:Python练习”文件夹中。这两个文件的内容相同,文件内容如下:a123456789b123456789c123456789d123456789e123456789f1234567891abcdefghi2abcdefghi3abcdefghi4abcdefghi5abcdefghi7.2 7.2 文件的操作文件的操作运行结果如下:Abc1.txt:a123456789b123456789c123456789d123456789e123456789f1234567891abcdefghi2abcdefghi3abcdefghi4abcdefghi5abcdefghidai.txt:a123456789b123456789c123456789d123456789e1234567897.2 7.2 文件的操作文件的操作2. 用readline()方法读取文本文件对象的readline()方法是从当前行的当前位置开始读取指定数量的字符,并以字符串形式返回,语法格式如下:fileObject.readline(size)或变量名= fileObject.readline(size)7.2 7.2 文件的操作文件的操作【例7-3】使用readline()方法,分行、分批读取Unicode编码格式的文本文件,要求过滤掉文本行末尾的换行符。通过字符串切片操作可以过滤掉文本行末尾的换行符,即把包含换行符的字符串加上“:-1”。file = open(D:Python练习data7-3.txt, r, -1, utf-16)line=file.readline(3)print(line)line=file.readline()print(line:-1) # 本行与下一行之间没有空行line=file.readline(3)print(line)line=file.readline()print(line) # 本行与下一行之间有空行line=file.readline()print(line) # 本行与下一行之间有空行file.close()7.2 7.2 文件的操作文件的操作用记事本输入如下内容,以Unicode编码保存,存储路径为“D:Python练习data7-3.txt”。Merry Christmas.祝你和你的家人圣诞节快乐!Merry Christmas to you and your family.运行结果如下:Merry Christmas.祝你和你的家人圣诞节快乐!Merry Christmas to you and your family.7.2 7.2 文件的操作文件的操作3. 用readlines()方法读取文本文件对象的readlines()方法读取所有可用的行,并返回这些行所构成的列表类型(list),语法格式如下:fileObject.readlines(size)或变量名= fileObject.readlines(size)7.2 7.2 文件的操作文件的操作7.2.2 写文件1. 使用write()方法写入文本内容文件对象的write()方法向当前位置写入字符串,并返回写入的字符个数,语法格式如下:fileObject.write(str)【例7-4】创建一个Unicode编码格式的文本文件,输入文本内容,然后输出该文件中的文本内容。file=open(D:/Python练习/data07_07.txt, w+, encoding=utf-16)print(请输入文本内容(QUIT=退出)print(-*50)line=input(请输入:)while line.upper() != QUIT: file.write(line+n) line=input(请输入:)file.seek(0) # 文件当前位置移到文件开头print(-*50)print(输入的文本内容如下:)print(file.read()file.close()7.2 7.2 文件的操作文件的操作运行结果如下:请输入文本内容(QUIT=退出)-请输入:1234567890请输入:abcdefghijklmn请输入:quit-输入的文本内容如下:1234567890abcdefghijklmn7.2 7.2 文件的操作文件的操作2. 使用writelines()方法写入文本内容文件对象的writelines()方法在文本流当前位置依次写入指定列表中的所有字符串,语法格式如下:fileObject.writelines(seq)【例7-5】通过追加可读/写模式打开例7-4中创建的文本文件,输入文本内容将其添加到该文件末尾,然后输出该文件中的所有文本内容。file=open(D:/Python练习/data07_07.txt, a+, encoding=utf-16)print(请输入文本内容(QUIT=退出)print(-*50)lines=line=input(请输入:)while line.upper() != QUIT: lines.append(line+n) # 在列表尾部添加元素 line=input(请输入:)file.writelines(lines) # 把列表写入文件file.seek(0) # 将文件指针移动到文件开头print(-*50)print(文件0中的文本内容如下:.format(file.name)print(file.read()file.close()7.2 7.2 文件的操作文件的操作运行结果如下:请输入文本内容(QUIT=退出)-请输入:33333333333333333333333333请输入:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa请输入:quit-文件D:/Python练习/data07_07.txt中的文本内容如下:1234567890bcdefghijklmn33333333333333333333333333aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa7.2 7.2 文件的操作文件的操作【例7-6】文件写入方法示例。file1=open(C:Python练习abc1.txt, a+) # 文件打开模式为追加方式s1=aaaaaaaaaan # s1是一个字符串# s2是一个列表s2=11111111111111n, 22222222222222n, 333333333333333nfile1.write(s1) # write()方法写入字符串file1.writelines(s2) # writelines()方法写入列表file1.close() # 关闭文件file1 =open(C:Python练习abc1.txt, r) # 打开刚才写入的文件print(file1.read() # 读取文件所有内容并输出file1.close() # 关闭文件运行程序后用记事本打开abc.txt文件,可看到已经追加了新的内容。7.2 7.2 文件的操作文件的操作3. flush()方法flush()方法的语法格式如下:fileObject.flush()flush()方法把缓冲区的内容写入外存储器(如硬盘、U盘)。7.2 7.2 文件的操作文件的操作7.2.3 在文件中定位1. 使用tell()方法获取文件指针的位置调用文件对象的tell()方法获取文件指针的当前位置,其语法格式如下:fileOb
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号