python bytes类型
python3中二进制数据则由bytes类型表示,8位一字节
格式化打印文件的二进制编码
with open('spiderman.mkv', "rb") as f:
print("ok")
for i in range(10):
data=f.read(16)
print (''.join(map(lambda x:('/x' if len(hex(x))>=4 else '/x0')+hex(x)[2:],data)))
每读取16个字节数据然后逆序写入原文件
你就可以用它来加密某些二进制文件(☄⊙ω⊙)☄
运行一遍,文件就不能打开,再运行一遍文件又回来了
with open('spiderman.mkv', "rb+") as f:
print("ok")
n=16
for i in range(5):
data=f.read(n)
data=data[::-1]
f.seek(-n,1)
f.write(data)
我搜了个底朝天也没有发现好方法直接合并两个文件,或者说在文件前插入字节。只能将一个文件一行一行写入另一个文件末尾。
seek():移动文件读取指针到指定位置
tell():返回文件读取指针的位置
seek()的三种模式:
(1)f.seek(p,0) 移动指针到文件第p个字节处,绝对位置
(2)f.seek(p,1) 移动指针到相对于当前位置之后的p个字节
(3)f.seek(p,2) 移动指针到相对文章尾之后的p个字节