1.使用open()函数打开文件夹在读取一个文件的内容之前需要先打开这个文件。在Python程序中可以通过内置函数open()来打开一个文件程序中并用相关的方法读或写文件文件中的内容以供程序的处理和使用同时可以将文件看作Python中的一种数据类型。是用函数open()的语法格式如下。12open(filename, moder, bufferingNone, encodingNone, errorsNone,newlineNone, closefdTrue, openerNone)open: 打开以什么样的方式打开 读或写 read, write以读的方式文本的方式 二进制的方式以写的方式文本的方式二进制的方式写文件的时候覆盖追加两种方式当使用上述函数open()打开一个文件后 就会放回一个文件对象。上述格式中主要参数的具体说明如下所示filename:表示要打开的文件名。路径文件名mode模式。buffering可选参数缓冲区大小encoding文件编码类型。文本文件才有可能需要编码二进制文件不需要指定编码 否则会报出异常errors编码错误处理方式。newline控制通用换行符模式的行为。closefd控制在关闭文件时是否彻底关闭文件。上述格式中参数“mode”表示文件打开模式。在Python程序中常用的文件打开模式如下表所示。文件打开模式模式描述r以读的方式打开文件默认rb以二进制的格式打开一个文件只用于读。文件指针将会放在文件开头。r打开一个文件用于读写。文件指针将会放在文件开头。rb以二进制的格式打开一个文件用于读写。文件指针将会放在文件开头。w以写的方式打开先清空文件再写覆盖如果该文件不存在创建新文件wb以二进制的格式打开文件并写入先清空文件再写覆盖如果该文件不存在创建新文件。w以二进制的格式打开一个文件用于读写。先清空文件再写覆盖如果该文件不存在创建新文件。wb以二进制的格式打开文件并读写先清空文件再写覆盖如果该文件不存在创建新文件。a以追加的方式去写ab以二进制的格式打开一个文件夹用于追加。如果该文件存在文件指针将会放在文件的结尾。也就是说新的内容将会写入到已有的内容之后。如果该文件不存在创建新文件。a打开一个文件用于读写。如果该文件存在文件指针将会放在文件的结尾。如果该文件不存在创建新文件。ab以二进制格式打开一个文件用于追加。如果该文件存在文件指针将会放在文件的结尾。如果该文件不存在创建新文件。下图很好的总结了这几种模式12345678910111213141516171819202122232425262728293031323334#默认以文本读的方式打开file_objopen(file.txt, encodingutf-8)datafile_obj.read()print(data)file_obj.close()file_objopen(file.txt,rt, encodingutf-8)datafile_obj.read()print(data)file_obj.close()file_objopen(file.txt,w, encodingutf-8)datafile_obj.write(11111111111111111)print(data)file_obj.close()file_objopen(file2.txt,w, encodingutf-8)datafile_obj.write(11111111111111111)print(data)file_obj.close()file_objopen(file2.txt,a, encodingutf-8)datafile_obj.write(2222222222222)print(data)file_obj.close()file_objopen(file3.txt,a, encodingutf-8)file_obj.write(33333333333333333333333333)file_obj.close()file_objopen(file.txt, encodingutf-8)datafile_obj.read()file_obj.close()1.1.2二进制的方式打开图片音频视频或者其他的非文本的文件。1234567891011#打开”IO.png“文件并以二进制的方式读出 b不能单独使用b前的r不能省略file_objopen(IO.png,rb)datafile_obj.read()print(data)#关闭文件file_obj.close()#以二进制的方式写入文件”psb_copy.jpg“file_objopen(psb_copy.jpg,wb)file_obj.write(data)#关闭文件file_obj.close()注意“IO.png”文件中以存入了一张照片。2.文件的操作以文本方式写入的文件, 无需指定编码 以二进制方式写入文件写入的内容要 求为bytes,所以通过str.encode(utf-8)来返回 bytes1.2.1 文件写操作write()方法 f.write(hello world) #向目标文本文 件写入一行字符串f.write(hello world.encode(utf-8)) #向目标二进制文件写入一行字符串1.2.2文件写操作writelines()方法写入 文件的字符串序列。seq [hello world 1\n, nihao wohao 2] f.writelines( seq ) 7/151.2.3 文件读操作read()方法从文件读取指定的字节数,如果未给定或为负则读取所有。ret f.read() #默认全部读出 ret f.read(5) #读出指定长度字符1.2.4 文件读操作readline()方法可以读 出一行数据ret f.readline() #读取一行注意有个很像的readlines()方法ret f.readlines() #返回的是一个列 表且返回的是你读取的字符所在行的整个内容但是当数据较大时这样的用法会很占 用内存。3.使用File操作文件3.1File对象的介绍File对象中的属性信息如下表所示。File对象中的属性信息属性描述file.closed如果文件已关闭返回True;否则返回Falsefile.mode返回打开文件的访问模式file.name返回文件的名称在Python程序中对象File时通过内置函数实现对文件操作的其中常用的内置函数如下。File对象中的内置函数函数功能file.close()关闭文件关闭文件后不能再进行读写操作file.flush()刷新文件内部缓冲区直接把内部缓冲区的数据写入文件而不是被动的等待输出缓冲区写入。file.fileno()返回一个整形的文件描述可以用在如os模块的read方法等一些底层操作上file.isatty()如果文件连接到一个终端设备返回True否则返回Falsefile.next()返回文件下一行file.read([size])从文件读取指定的字节数如果为给定或者为负值则读取所有字节file.readline([size])读取整行包括“\n”file.readlines([hint])读取所有行并返回列表如给定hint返回总合大于约为hint字节的行实际读取值可能比hine大因为需要填充缓冲区file.seek(offsrt[, whence])设置文件当前位置file.tell返回文件当前位置file.truncate([size])截取文件截取的字节通过size指定默认为当前文件的位置file.write(str)将字符串写入文件没有返回值file.writeline(lines)向文件写入一个序列字符串列表如果需要换行则要自己加入换行符。