def splitlis(lis,n):
for i in range(0, len(lis), n):
yield lis[i: i + n]
def csilas(src,dst):
dat=open(src, 'rb').read().hex()
fp=open(dst,'wb+')
cat=b'%zfc-1.0'
fp.write(cat)
lis=list(splitlis(dat,2048))
inx=0
while inx<len(lis):
if len(lis[inx:])==1:
fp.write(bytes.fromhex('00'*16+lis[inx]))
else:
tmplis=list(splitlis(lis[inx],16))
tmpbit=''
tmphex=''
for it in tmplis:
if it == '00'*8:
tmpbit+='1'
else:
tmpbit+='0'
tmphex+=it
fp.write(bytes.fromhex(str.zfill(hex(int('0b'+tmpbit,2))[2:],32)+tmphex))
pass
inx+=1
fp.close()
def dsilas(src,dst):
fp=open(src, 'rb')
fq=open(dst,'wb+')
fp.seek(8)
while True:
hi=fp.read(16)
hinx=hi.hex()
if hinx=='':
break
if hinx=='00'*16:
fq.write(fp.read(1024))
else:
binx=str.zfill(str(bin(int('0x'+hinx,16)))[2:],128)
for it in binx:
if it=='1':
fq.write(b'\x00'*8)
else:
fq.write(fp.read(8))
fp.close()
fq.close()
简易压缩模型原型
最新推荐文章于 2024-08-19 10:32:34 发布