اول از همه باید فایل رو کاراکتر به کاراکتر بخونید و کد اسکی شو بدست بیارید(با استفاده ازord) و بعد اون را به باینری تبدیل کنید (فایل اول فایلی است که کاربر داده و فایل دوم فایلیه که میخواهید فشرده شده شو در اون ذخیره کنید.) من تمام کدهای باینری رو در رشته s ذخیره کردم؛ بعد از اینکه به باینری تبدیل شد هشت تا هشت تا میخونید و آنها را اینت تبدیل میکند و حرف متناظر با اون رو از جدول پیدا میکنید با استفاده از chr؛ و بعد کاراکترهای جدید را در فایل جدید ذخیره میکنید.
def compress(name_file , new_file):
file1 = open(name_file , 'r')
file2 = open(new_file , 'w' , encoding="utf-8")
s = ''
for i in file1.read():
Unicode = ord(i)
temp = bin(Unicode)[2:]
for j in temp:
s += str(j)
a = 0
for i in range(0,len(s)//8):
newchr = s[a:a+8]
newchr = int(newchr , 2)
file2.write(chr(newchr))
a += 8
file1.close()
file2.close()