文件操作
#打开模式
w write 写入模式
文件不存在则创建文件,存在的话则打开清空内容,并且将文件指针放在文件的开头
r read 读取模式
文件不存在则报错! 存在的话则打开文件,并且将文件指针放在文件的开头
a append 追加模式
文件不存在则创建文件,存在的话则打开文件,*并且将文件指针放在文件的末尾*
x xor 异或模式
文件已存在则报错! 不存在的话则创建文件,将文件指针放在文件的开头
#扩展模式 (配合打开模式的辅助模式,自己单独不能使用)
+ plus 增强模式(可以让文件具有读写功能)
b bytes bytes模式(二进制字节流)
#模式一共16种
w,w+,wb,wb+
r,r+,rb,rb+
a,a+,ab,ab+
x,x+,xb,xb+
# 将字符串和字节流(Bytes流)类型进行转换 (参数写成转化的字符编码格式)
#encode() 编码 将字符串转化为字节流(Bytes流)
#decode() 解码 将Bytes流转化为字符串
# (utf-8编码格式下 默认一个中文三个字节 一个英文或符号 占用一个字节)
#read() 功能: 读取字符的个数(里面的参数代表字符个数)
#seek(offset[, whence]) 功能: 调整指针的位置(里面的参数代表字节个数)
参数
offset -- 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。
返回值
如果操作成功,则返回新的文件位置,如果操作失败,则函数返回 -1。
#tell() 功能: 当前光标左侧所有的字节数(返回字节数)
# 刷新缓冲区 flush
# 当文件关闭的时候自动刷新缓冲区
# 当整个程序运行结束的时候自动刷新缓冲区
# 当缓冲区写满了 会自动刷新缓冲区
# 手动刷新缓冲区
# with 语法 自动关闭文件 相当于帮你执行了fp.close()
文件相关函数
#readline() 功能: 读取一行文件内容
#readlines() 功能:将文件中的内容按照换行读取到列表当中
#writelines() 功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据
#truncate() 功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)
#readable() 功能: 判断文件对象是否可读
#writable() 功能: 判断文件对象是否可写
字符相关的(了解)
#字符:无论是什么语言,独立的一个文字就是一个字符
#存储单位:
Byte字节
bit:位
1B = 8b
B:字节, 1Byte = 8bit
#字符大小:
无论何种字符集:英文和数字都是一个字节,汉字,韩文,日文等亚洲文字采用多个字节存储
GB系列编码:存储一个汉字使用2个字节 (国标编码:例如: gbk2312 )
UTF系列编码:存储一个汉字使用3个字节(国际通用:例如: utf-8 )
#字符编码种类: (把编码看成一个密码本,每一个字符在计算机中都是个二进制)
英文原始编码:
ASCII码 -> 最早的字符编码格式->仅支持英文和特定的符号
中文编码:
GB2312 : 包含5000个常用汉字的标准
GB18030: 升级版本的标准,大概15000个汉字
GBK : 包含所有中文汉字的编码(推荐)
BIG5 : 繁体中文编码
万国码:
unicode 包含世界上所有的文字(无论什么字符 都按照4个字节表示)
utf-8 可变长的unicode编码