0
파이썬에서 LZW 알고리즘을 사용하여 간단한 텍스트 파일을 인코딩했습니다. 그러나, 나는 그 자체가 거의 많은 공간을 차지하는 write() 함수를 사용하여 .txt
파일에만 문자열을 쓸 수 있다는 것을 깨달았다. 그래서 어떻게 든 실제 정수를 파일에 (어쩌면 다른 형식으로) 쓸 수 있습니까? 적절한 압축을 얻으려면 어떻게해야합니까?데이터 압축을 위해 문자열 대신 파일에 숫자를 씁니까?
readfile = open("C:/Users/Dhruv/Desktop/read.txt", "r")
writefile = open("C:/Users/Dhruv/Desktop/write.txt", "w")
content = readfile.read()
length = len(content)
codes = []
for i in range(0, 256) :
codes.append(str(chr(i)))
current_string = ""
for i in range(0, length) :
temp = current_string + content[i]
print(temp)
if temp in codes :
current_string += content[i]
else :
codes.append(current_string + content[i])
writefile.write(str(codes.index(current_string)) + " ")
current_string = str(content[i])
writefile.write(str(codes.index(current_string)) + " ")
readfile.close()
writefile.close();
'wb' 모드로 쓰기 위해 열린 * 바이너리 파일 *을 의미 할 수 있습니까? –
@AnttiHaapala와 동의하고 "wb"를 사용하여 이진 인코딩으로 bytes()를 보냅니다. http://stackoverflow.com/questions/20955543/python-writing-binary – RobertB
255보다 큰 정수도 저장하고 싶습니다. 어떻게해야합니까? 또한 정수로만 다시 읽으려고합니다. –