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个字节
posted @ 2018-11-21 17:12  灰太狼的喜羊羊  阅读(1007)  评论(0编辑  收藏  举报