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]