在内存中存在数据交换的操作认为是IO操作
字节串
ascii编码字符串(英文及符号)转换为二进制字节串:在前面加b,例如:b’hello’
UTF-8编码字符串转换为二进制字节串使用encode(),例如:’你’.encode()
二进制字节串转换为字符串使用decode(),例如:b’\xe4\xbd\xa0’.decode()
encode()和decode()默认UTF-8编码
汉字在python中占3个字节,换行占2字节
文件读写
- 打开文件
open()函数
file = open(file_name, mode=’r’, buffering=-1)mode
r:指针定位到第0位,只读
w;无则创建,有则清空,无则创建,只写
a:指针定位到最后,无则创建,只写
r+、w+、a+:读写权限更改为可写可读
rb、wb、ab:以二进制读模式打开
rb+、wb+、ab+:读写权限更改为可写可读buffering
参数0表示无缓冲,1表示行缓冲(换行刷新缓冲)。
如果大于1则指明缓冲区大小,不写或为负数则使用系统默认缓冲区大小。
读取文件
file.read():读取所有字节到字符串中
file.readline():读取下个换行符及之前的所有字节
file.readlines();读取所有行,将行作为列表元素返回写入文件
file.write():将字符串写入文件
file.writelines():将列表元素写入文件,换行符并不会被自动加入 file.flush():人为刷新缓冲区,将内容写入磁盘- 文件指针(偏移量)
读取和写入操作会改变文件指针位置- file.tell():获取文件指针位置
- file.seek(offset,whence):人为移动文件指针位置(必须以二进制格式打开)。
offset为偏移量。whence为基准位置,默认值为0代表开头,1代表当前,2代表结尾
关闭文件
file.close():以防止一些误操作,也可以节省资源- with操作
自动释放被访问的资源,比如文件读写后自动关闭、线程中锁的自动释放等# 示例 with open('file','r+') as f: f.read() - fileno()
file.fileno():获取系统为每个IO操作分配的编号
文档信息
- 本文作者:Weikang Yu
- 本文链接:https://AccelYu.github.io/2020/06/17/IO/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)