#打开模式
w write 写入模式
没有则创建,存在则清空后在写入。
r read 读取模式
a append 追加模式
x xor 异或模式
文件已存在则报错! 不存在的则创建
#扩展模式
+ plus 增强模式
b bytes模式(二进制) 如图片,视频,音乐
模式一共16种
w,w+,wb,wb+
r,r+,rb,rb+
a,a+,ab,ab+
x,x+,xb,xb+
字符集
fp = open("文件名",mode=模式,encoding=编码集)
fp = open("ceshi1.txt",mode="w",encoding='utf-8')
fp.write('把大象塞进去')
fp.close()
转化成二进制字节流
将字符串和字节流(Bytes)类型进行转换(参数写成转化的字符编码格式)
encode()编码 将字符串转化成字节流(Bytes)
decode()解码 将字节流转化成字符串
复制图片、视频、音乐 二进制字节流模式
open=('集合.png',mode='rb')
str_bytes=fp.read()
fp.close()
创建新图片文件
fp = open('集合2.png',mode='wb')
fp.write(str_bytes)
fp.close()
#文件的扩展模式
#(utf-8 编码格式 一个中文字符占用三个字节,一个英文或符号占用一个字节)
#read() 功能: 读取字符的个数(里面的参数代表字符的个数)
#seek() 功能: 调正指针的位置(里面的参数代表字符的个数)
#tell() 功能: 当前光标左侧所有的字节数。
fp.seek(n,模式) :n指的是移动的字节个数
0:参照物是文件开头位置,只有0模式在t模式下使用。
f.seek(19,0)
1:参照wu是当前指针所在位置
f.seek(19,1)
2: 参照物是文件末尾位置,应该倒着移动
f.seek(-9,2)
fp.seek(0) 把文件指针调正到文件的开头。
fp.seek(0,2) 把文件指针移动到文件的末尾。
处理大文件时使用seek(),使用seek()实现linux tail命令功能
#改写复制图片操作
with open('集合.png',mode='rb') as pf1, open('集合3.png',mode='wb') as fp2:
#读取内容
str_var = fp1.read()
#写入
fp2.write(str_var)
实现tail -f的功能
import time
import datetime
for i in range(1,100):
msg = str(i)
with open(r'b.txt',mode='a+') as f:
f.write(msg + "\n")
f.flush()
f.close()
time.sleep(1)
with open(r'b.txt',mode='br') as pf:
while true:
line = pf.readline()
if len(line) == 0:
time.sleep(0.3)
else:
print(line.decoding=('utf-8'),end='')