阿使得肌肤· 发表于 2018-8-5 09:17:51

Python文件操作IO open 读-取-写

  PythonIO文件操作,读、取、写
  本篇内容 文件的操作。
  ▷文件的练习
  ▷文件的操作
  读取信息 、写入信息、文件有那么多的字,在什么地方写入、怎么 控制它。
  文件对象 ===读取 === 写入
  生成文件对象
  Fileobject = open(filename,mode)py3 py2 通用
  文件对象 = 打开(文件名称,文件模式)
  Fileobject = file(filename,mode)py2用的
  
  文件对象 = 文件(文件名称,文件模式)
  对文件进行操作。
  图形界面打开文件过程,先找到文件 --双击打开。
  程序打开文件工程,找到文件--确定是这个文件打开。
  程序打开并不是一定能看见,通常是给程序员看或者用户。
  通过程序 给某一个文件建立起某一个联系,在这 叫做生成文件对象。
  可以理解为,你和文件建立起了联系,你要读取还是写入信息,还没确定。
  在文件进行操作之前第一步就是生成一个文件对象。
  两个方法。一个open 一个file
  ▶open方法
  fileobject = open(filename,mode)py2,py3 都可用
  文件方法 = 打开(文件名,方法)
  ▶file方法
  fileobject = file(filename,mode) py 用
  文件方法 = 文件(文件名,方法)
  要养成一个习惯,用两个都有的的open。这样用2py也可以,3py也可以。减去后续不必要的麻烦。
  
  示范 fileobject = open (filename,mode)
  方法 =确定文件在什么地方,(在什么路径,用读取还是写入方式打开。)
第一种情况进入我创建的文件夹选项,进入的的ipython。可直接打开文件

  返回的提示表达:方式是 r 打开 编码格式是CP936
  此时获得并不是文件的内容,只是一个文件获得的一个句柄,或者理解为对象。
  
  第二张情况 因为执行的文件环境是同一个目录下,只需要执行文件的名字。
  如果不是一个文件目录,需要r文件 指定目录 写上完整路径

  
  读取文件
  注意: 进行读取文件,可以后面方法写上'r' ,也可以不加 ,因为程序默认的就是为'r'的参数
  基本文件操作过程
  Read 语法

  选择字节数的操作

  read列子

  讲解含义:
  1 先生成一个对象。然后通过对象的方法。《某对象 = 方法》
  2 选择是对文件进行读取信息,还是写入信息。《f.read() = 对象 ,阅读》,读到信息
  3 操作完毕后对象 文件关闭 ,主要是为了释放内存。《对象.close()》
  
  文件操作方法 和对象

  可以组合使用,比如r+ 就有读取的作用、rb读取一个二进制文件。
  创建文件生成句柄
  生成文件对象

  创建文件句柄,生成文件对象的时候,是读是写还是追加去写。
  
  基本上功能如下图,唯一的区别还是有一点的,先了解下怎么样读取和写入,
  然后在看它们的区别

  
  
  介绍 readline
  之前用的read,它是读取全部的内容,
  但是有的时候,内容有很多行,每一次只想读取一行,这个时候就该用到readine,逐行读取,也可以指定字节。

  Readline列子
每次执行的话会读取一行。如果为空的话,会显示\n
  

  每次执行readline命令内容就会读取下一行,其实这个时候 指针就在起作用了,每次执行一次,指针调到下一行第一个字符。这就是readline过程
选择一次读多少字节,这里为一次5字节 。
  没有就显示\n
  
  freadlines列子

  readlines
  可以直接读取多行,然后返回一个列表。
  形成一个列表。每一个元素就是一行,直接通过列表方式 获取第几行数据。

  
  小补充
这个案例是不让你产生错觉,用read 读取后指针会一直往下扫描。一直读取全部,。当指针到最后,你还想往下读的话,是读不出来数据的。
  要想在看上面数据,可以用一个变量做一个赋值,保存起来。什么时候想看文件信息,只要显示s变量值就可以了。
  最基础的方法。其它方法也有,后面补充。
  
  变量赋值案例
  把f 调用方法保存到
  变量c中。
以上介绍了IO文件在读的时候,指针的作用
  
  知道了怎么读,
  下面要看下怎么写入数据
  Write语法

  Write例子

  上图解有、 w效果为写入和重建。
  表达含义:
  1.用 w 写入权限 写入,此时新建一个为xq5txt文件。
  2.用 write方法写入,内容。一共为14个字节
  3.可以明确看出此时创建的文件只有写,没有读的权限
  4.f变量用 r 读的方式
  5.用读的权限 完美读取 新建的xq5.txt里面的内容;      
  
  Writeines语法

  Wwritelines例子:

  表达含义:
  1.用写的方式,w打开文件
  2.用writlines 列表写入法
  3.释放文件
  4.读取文件
  5.读取得到 写入的数据;
  列表数据变成一行的数据
  
  
  文件对象组合使用
  注意下 rw 不能 组合使用 。

  所以w只可以写入,如果想 有更新作用就用一个加号。
  r w a三个组合的时候,只能用到和a的 组合!
  
  w +
  可以组合使用,
  但是 w 的效果是每次用时,就会重建数据,
  1.用w 写入 + 更新 功能 就会有写入效果
  2.之前这个文件里面为时间信息,可现在碰到w了,就会重新创建一个文件,是个新的文件,所以里面什么都没有。
  3.更新写入内容=.=
  4.读取数据,现在是读不到数据的,因为更新写入数据时也是指针控制。写完一个指针移动一下,等你写完之后指针就到了结尾处 ,所以读取数据时,是读不到前面的。
  除非把指针移动到开口去。

  a
  含义 写入,在文件末尾追加新的内容,文件不存在,创建之
  下面看下a的效果跟 w 做一下对比。

  表达含义:
  1.用a的方法 操作打开文件
  2.进行写入的操作,a是可以写入的。
  3.查看文件是没有权限的
  4.释放文件控制
  5。用读的方式查看了 a写入的有没有生效;
  6.追加信息成功,在文件末尾追加了abc
  w是直接写入 重建文件
  a是在文件末尾追加内容。如果没有文件就新建一个。
  看下a+和 r+ 的区别

  表达含义:
  a+
  1. 对xq5.txt文件进行 a末尾更新权限 +获得读的权限
  2.读取的是为空的,因为指针现在在文件结尾。没有消息
  3.释放文件
  r+、
  4.进行读取更新。可读可写。
  5.写入内容 hello
  6.因为写入后文件为文件末尾,查看也为空,就释放文件用读的方式。
  7.用r 的方式对 xq5.txt文件进行操作。
  8.打开感觉出现了替换的效果,用r的话,因为r的权限是读,会从文件的开头读取,+是更新,可以写入。产生了一个替换的效果。
  
  
  到这里呢,对着三个模式的基本概念就明确了。
  至于b和U,如果要进行读取二进制的图片MP3这类文件或者一个程序,可以进行rb 进行读取。
  但是读取出来的信息不是人类能搞懂的一个信息。
  现在已经基本上讲解了怎么读怎么写。
  读有read 、readline、readlines、
  写有write、writelines、
  了解知识点,了解IO文件的读取创建写入方法。
  
  补充更新1.9
  
  介绍几个新功能
  提交更新、偏移量、
  FilcObject.flush()
  提交更新案例

  表达含义
  1.先查看文件,
  2.内容如下
  3.释放内存解除文件占用
  4.用r+ ,读取更新方式赋值
  5.写入新的内容。
  

  写入命令执行后,文件不会立即生效,
  这个时候运用.flush(),及时更新,文件重新打开立即生效。
  如果不提交更新,当你用.close之后,把文件关掉,它会自动提交更新。

  
  偏移量
  FileObkect.seek (偏移量,选项)
  文件对象.查找
  偏移代表你要移动几位,,选项为位置选择字符位置0

  
  .seek例子

  文件已经读取过,选择读取,在读是读不到数据的。
  因为指针,移动到了文件末尾,所以读取后面内容为空。这个时候就运用到我们的方法了。
  
  
  偏移量为0,选项为0,指针移动到文章开头。
  指针从头读取得到内容。

  
  偏移量为1 ,选项为0,指针从头移动。移动一位。
  读取得到指针移动一位后的下面内容。

  
  除了从开头开始移动
  还有两种移动方式,
  一种是表示从当前,指针所指向的位置,先后移动,选项为1,
  如果从文件的末尾像前移动的话,选项为2.
  
  注意事项
  在PY3中
  这里是用r的方式打开的
  注意纯文本的文件,不允许从当前位置,从文件末尾,先前或者先后移动。
  区别点:py3中要用rb二进制的方式去打开它,py2里可以直接用r 读取的方式打开。

  
  选项为1 和2的展示
  选项1展示

  选择为1的显示
  1,用rb读取方式。
  2.b 代表用二进制的方式读取的,读取全部内容
  3.从当前位置,读取,当前位置为末尾,向前读取4位
  4.得到内容48hh
  
  选项为2的显示。

  选项为2 的显示,
  1.用rb 读取二进制的方式,
  2. b代表用二进制方式读取的,读取全部内容
  3.偏移量为-2,代表向前移动,选项2 代表从文件末尾向前移动偏移量。
  4.向前移动两位得到后两位结果 hh
  
  
  
2018年1月6号 王宇林  
页: [1]
查看完整版本: Python文件操作IO open 读-取-写