久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
哈夫曼py程序
[打印本頁]
作者:
航123
時間:
2018-6-24 10:59
標題:
哈夫曼py程序
程序可參考
py源程序如下:
import hufcode
import statistic
import six
def decompress():
print("please input youer filename")
inputfilename=input()
f = open(inputfilename,'rb')
filedata1 = f.read()
filedata=bytearray(filedata1)
filesize = f.tell()
#print(filedata)
a1 = filedata[0]
a2 = filedata[1]
a3 = filedata[2]
a4 = filedata[3]
j = 0
j = j|a1
j = j<<8
j = j|a2
j = j<<8
j = j|a3
j = j<<8
j = j|a4
leaf_node_size = j
char_freq = {}
for i in range(leaf_node_size):
c = filedata[4+i*5+0]
a1 = filedata[4+i*5+1]
a2 = filedata[4+i*5+2]
a3 = filedata[4+i*5+3]
a4 = filedata[4+i*5+4]
j=0
j = j|a1
j = j<<8
j = j|a2
j = j<<8
j = j|a3
j = j<<8
j = j|a4
#print (c, j)
char_freq[c] = j
j=0
list1=[]
list_all=[]
for x in char_freq.keys():
list1.append((x,char_freq[x]))
list1.sort()
list_all=[item[0]for item in list1]
#print(list1)
#print(list_all)
nodes = hufcode.createNodes([item[1] for item in list1]) #出現次數
root = hufcode.createHuffmanTree(nodes) #葉子節點
codes = hufcode.huffmanEncoding(nodes,root) #編碼
#print(codes)
code1=''
for x in range(leaf_node_size*5+4,filesize):
c = filedata[x]
for i in range(8):
if c&128:
code1 = code1 +'1'
else:
code1 = code1 + '0'
c = c<<1
#print(code1)
newcode=dict(zip(codes,list_all))
print(newcode)
#print(newcode.get('1000'))
#print(bytes((int(newcode.get('1000')),)).decode("ascii"))
i=0
res=''
while i < len(code1)-24:
j = i+1
while j < len(code1): #獲取某一字符的code
if code1[i:j] in newcode.keys():
break
j += 1
#print(code1[i:j])
res =res + bytes((int(newcode.get(str(code1[i:j]))),)).decode('ascii')
#print(res)
i = j
sub_code = code1[-16:-8]
last_length = 0
for i in range(8):
last_length = last_length<<1
if sub_code[i] == '1':
last_length = last_length|1
code1=code1[-24:-16]+code1[-8:-8+last_length]
i=0
while i < len(code1):
j = i+1
while j < len(code1): #獲取某一字符的code
if code1[i:j] in newcode.keys():
break
j += 1
#print(code1[i:j])
res =res + bytes((int(newcode.get(str(code1[i:j]))),)).decode('ascii')
#print(res)
i = j
print(res)
print("\ndo you want save it? 1/yes,2/no")
ans=input()
ans=int(ans)
if ans==1:
print('please input the filename')
outfilename=input()
out = open(outfilename,"w")
out.write(res)
out.close
else:
pass
復制代碼
所有資料51hei提供下載:
霍夫曼.rar
(14.57 KB, 下載次數: 7)
2018-6-24 10:58 上傳
點擊文件名下載附件
py程序,哈夫曼編碼
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天堂资源
|
国产在线小视频
|
av网站在线免费观看
|
久久在线精品
|
九九久久精品视频
|
日韩一级片视频
|
日本一区二区三区在线视频
|
亚洲特黄
|
免费视频国产
|
九九视频在线免费观看
|
欧美久久久久久
|
国内精品一区二区
|
青青草国产精品
|
草草视频在线观看
|
欧美专区第一页
|
精品免费
|
手机看片1024日韩
|
国产成人精品一区二区三区福利
|
一区二区水蜜桃
|
五月婷婷av
|
日韩二区三区
|
aaaaaa毛片
|
国产伦精品一区二区免费
|
天天射综合
|
97在线免费视频
|
国产一区二区精品在线
|
国产精品毛片一区二区在线看
|
精品三级在线观看
|
九九热在线播放
|
久久精品99久久久久久
|
色婷婷网
|
亚洲黄色三级
|
黄色裸体视频
|
国产黄色大片
|
香蕉网在线
|
手机福利视频
|
成人精品
|
欧美顶级黄色大片免费
|
天天操免费视频
|
黄色片网站免费
|
狠狠干在线视频
|