一、什么是IO流
I:就是input 、O:就是output ,故称:输入输出流。
将数据读入内存或者内存输出的过程
常见的IO流操作,一般说的是【内存】与【磁盘】之间的输入输出。
二、作用
持久化数据,保证数据不再丢失!
文件操作流程:打开文件、读写数据、关闭文件。
1、根据数据流动方向(粘在内存的角度来说)
r——输入流
w——输出流
2、根据数据的类型
b——字节流
t——字符流
三、open()函数用法
open(name[, mode[, buffering[,encoding]]])
参数解释
name : 访问的文件名称的字符串值(区分绝对路径和相对路径)。
mode : mode 决定了打开文件的模式:只读,写入,追加等。
buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果 buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1 的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
image.png
image.png
四、高级的打开open
语法:with…open
with open('./hello.txt', 'r') as f:
print(f)
注:这里的as和前面提到过的as是异曲同工的,都是起到别名的作用。
这种语法,就是可以避免每次需要手动关闭文件,这种方式会在需要的时候自动关闭。
五、文件操作
文件读取
1、read()方法
read(num)
read()可以读取文件里面的内容。num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
2、readline()
readline:读取第一行,返回一个字符串。
3、readlines()
readlines:按照行的方式读取整个文件,每一行作为列表的一个元素,最后返回一个列表。
六、文件写入
write()方法和writelines(seq)方法
这两个方式都是用于文件写入的。需要注意的是,他们写完后在文件末尾都不会写入换行符。
七、其他操作
在某些场景下,可能我们需要更加方便的处理文件,例如,当我们读取文件一半的时候,我们需要读文件的后面具体的某些内容,这时候,我们就需要移动文件的指针来读取了。当然,都不用担心,python 都提供了这些方法,下面就讲解这些方法。
1、tell()
返回文件游标操作的当前位置,以文件的开头为原点。
2、seek(offset[,whence])
移动指针方法。
offset :开始的偏移量,也就是代表需要移动偏移的字节数
whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
3、flush()
把缓冲区的内容写入硬盘。
4、truncate()
把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
八、文件关闭
文件关闭是指,在文件操作完成之后,需要关闭。
f = open('./hello.txt', 'r')
f.close()
网友评论