Python的第十一天
一、二进制模式操作文件
1、若给变量赋空值,则用None。 name = None # 空值
encoding = None ,encoding 告诉你的解释器当前要打开的文件是什么编码,None是解释器默认编码:utf-8
2、用二进制模式打开--图片、视频文件
rb 2进制只读模式
wb 2进制创建模式,若文件已存在,则覆盖旧文件
ab 2进制追加模式,新数据会写到文件末尾
注:读出来的数据是bytes字节类型,写进去的也必须是bytes格式
3、 rb 2进制只读模式
f = open("20210110125559.jpg",mode="rb")
for line in f:
print(line)
4、 wb 2进制创建模式
f = open("file-wb","wb")
s = "路飞"
f.write(s.encode("utf-8"))
5、ab 2进制追加模式
f = open("name_list ","ab")
s = "wang"
f.write(s.encode("utf-8"))
二、跳到文件任意位置修改
1、def seek :把操作文件的光标移到指定位置,seek是按字节算的,gbk编码 一个中文占两个字节;utf-8编码 一个中文占三个字节
读:
f = open("name_list","r")------------alex
f.seek(2)
print(f.readline())------------------f.seek(2)--ex ; f.seek(3)--x
写:
f = open("name_list","w") -------- hello1
f.write("hello1 ") he----
f.write("hello2 ") hello3
f.write("hello3 ")
f.seek(10)
f.write("----")
2、def tell:返回光标当前位置
f = open("name_list","w")
f.write("hello1 ")
f.write("hello2 ")
print("返回光标当前位置:",f.tell()) ------- 返回光标当前位置:16
3、def flush:把文件从内存缓存强制刷新到硬盘上
f = open("name_list","w")
f.write("line1 ")
f.flush()