百事可乐乐乐

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一、文件是储存在辅助器上的数据序列,展现形态分为文本文件和二进制文件,以二进制形式储存。

(1)文本文件

       由单一特定编码组成的文件,如UTF-8编码,文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符'\n'结尾。常规字符串是指记事本之类的文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符串,如英文字母、汉字、数字字符串。在Windows平台中,扩展名为.txt、.log、.ini的文件都属于文本文件,可以使用字处理软件如gedit、记事本进行编辑。

(2)二进制文件

       直接由比特0和1组成,没有统一的字符编码。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件。二进制文件把信息以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件直接进行编辑,通常也无法被人类直接阅读和理解,需要使用对应的软件进行解码后读取、显示、修改或执行。例如,图6-1中使用Windows记事本打开Python主程序文件pythonw.exe,由于这个文件是二进制可执行文件,无法使用记事本查看,所以显示乱码。

二、文件内容操作三步走:打开、读写、关闭。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file参数指定了被打开的文件名称。

mode参数指定了打开文件后的处理方式。

buffering参数指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大于1则表示缓冲区的大小。默认值是缓存模式。

encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。

       如果执行正常,open()函数返回1个文件对象,通过该文件对象可以对文件进行读写操作。如果指定文件不存在、访问权限不够、磁盘空间不足或其他原因导致创建文件对象失败则抛出异常。

f1 = open( 'file1.txt', 'r' )     # 以读模式打开文件

f2 = open( 'file2.txt', 'w')      # 以写模式打开文件

当对文件内容操作完以后,一定要关闭文件对象,这样才能保证所做的任何修改都确实被保存到文件中。

文件的打开:<变量名(文件句柄)>=open(<文件名>,<打开模式>)

文件的打开模式 描述
'r' 只读模式,如果文件不存在,返回FileNotFoundError
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
'x' 创建写模式,文件不存在则创建,存在则返回FileExistError
'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
'b' 二进制文件模式
't' 文本文件模式
'+' 与r/w/x/a一同使用,在原功能基础上增加同时读写能力

 

 

 

 

 

 

 

 

 

 

文件的读写:

 

方法 描述
 close() 关闭文件,释放文件对象
 read([size]) 从文本文件中读取size个字符的内容作为返回结果,或从二进制文件中读取指定数量的字节并返回,如果省略size则表示读取所有内容 
 readable() 测试当前文件是否可读 
 readline()  从文本文件读取一行内容作为结果返回
 readlines() 把文本文件中的每行文本作为一个字符串存入列表中,返回该列表 
 seek(offset) 改变当前文件操作指针的位置,offset含义:0-文件开头;1-当前位置;2-文件结尾 
 seekable() 测试当前文件是否支持随机访问,若不支持则调用方法seek()、tell()、和truncate()时会抛出异常 
 tell() 返回文件指针当前位置 
 truncate([size])

 删除从当前指针位置到文件末尾的内容。如果指定了size,则无论指针在什么位置都只留下前size个字节,其余的一律删除

 write(s) 把s的内容写入文件 
 writable() 测试当前文件是否可写 
 writeline(s) 把字符串列表写入文本文件,不添加换行符 

 

posted on 2020-05-25 17:46  煎饼果子*  阅读(283)  评论(0)    收藏  举报