나는 압축 프로젝트를 허프만 인코딩 및 디코딩 알고리즘을 사용하여 파이썬으로 작성하고 있습니다. 크기가 훨씬 작은 파일을 만들어야합니다. 나는 호프만 트리에서 얻은 바이트 값을 사용하고 '0100101'과 같은 문자열 리터럴로 파일에 기록합니다.이 숫자를 변환하여 이진수로 저장하려고합니다. '진수'에 의해 당신이 정수를 의미한다고 가정바이트를 문자열로 실제 바이트 유형으로 변환
답변
하나의 파일에 저장된 이진 값을 나타내는 문자열 목록을 다른 파일에 바이트로 쓰는 방법에 대한 예제는 아래 코드를 참조하십시오. 두 변종 (사용 된 것과 사용하지 않은 것) 모두 동일한 결과를 제공합니다.
# lstStrBin = ['01001010','10100101','01001011']
lstStrBin = open("binaryToByteString_Cg.txt").readlines()
# byteArr = bytearray([int(strBin, 2) for strBin in lstStrBin])
bytesString = bytes([int(strBin, 2) for strBin in lstStrBin])
# print(byteArr) gives: bytearray(b'J\xa5K')
with open('binaryToByteString_Cg.bin', "wb") as f:
# f.write(byteArr)
f.write(bytesString)
(3 바이트 길이 SciTE 같다) binaryToBytes.bin
의 내용은 다음과
P. binariesFile.txt의 다음 내용 :
ADDENDUM (2017-04-25)
01001010
10100101
01001011
:
가 (주석 참조) 나는 변환의 두 가지에 대한 두 부분의 코드를 아래에 제공 OP의 요청에 따라. 이 코드는 01010101
과 같은 줄을 가진 .txt
파일을 읽고 파일의 각 줄에 대해 단일 바이트로 이진 파일 .bin-fromTxt
을 작성한 다음 파일에 01010101
과 같은 줄을 포함하여 .bin-fromTxt
파일을 읽고 씁니다. 절차가 끝나면 .txt-fromBin
파일의 내용은 .txt
파일과 동일한 내용으로 앞뒤 전환이 성공적임을 나타냅니다.
with open('binaryToByteString_Cg.txt') as f_txt:
bytesString = bytes([int(strBin, 2) for strBin in f_txt.readlines()])
with open('binaryToByteString_Cg.bin-fromTxt', "wb") as f_bin:
f_bin.write(bytesString)
with open('binaryToByteString_Cg.bin-fromTxt', "rb") as f_bin:
bytesString = f_bin.read()
with open('binaryToByteString_Cg.txt-fromBin', "w") as f_txt:
for byte in bytesString:
f_txt.write("{0:{fill}8b}\n".format(byte, fill='0'))
는 경우에 binaryToByteString_Cg.txt
파일에는 다음이 포함
01010101
10101010
00001111
binaryToByteString_Cg.bin-fromTxt
파일에는 다음이 포함
최종 binaryToByteString_Cg.txt-fromBin
을 다시 :
01010101
10101010
00001111
:
>>> int('0100101', 2)
37
간단히 사용하여 정수로 문자열을 변환 내장 도심 2
와 int
기능.
그건 내가 찾던 것이 아니다. 내가 의미하는 바는 문자열이 있는데, 예를 들어 '0100101'이고 이진 파일에 비트 코드로 저장하려고합니다. 내 파일이 더 많은 요소를 포함하고 있기 때문에 변환 –
- 1. 바이트를 문자열로 변환
- 2. 단일 바이트를 문자열로 변환 하시겠습니까?
- 3. 문자열 바이트를 문자열로 변환
- 4. 바이트 배열을 문자열로 변환
- 5. 문자열에 바이트 값을 저장 하시겠습니까? 바이트를 문자열로 변환 하시겠습니까?
- 6. 자바 바이트 []에서/문자열로 변환
- 7. guid 바이트를 자바 스크립트의 문자열로 변환
- 8. 바이트 배열을 문자열로 변환
- 9. 바이트 배열을 Java 유형으로 변환
- 10. Java 바이트를 문자열로
- 11. 바이트를 문자열로 변환하거나 문자열을 바이트로 변환 하시겠습니까?
- 12. 바이트를 문자열로 읽는 방법
- 13. 바이트 배열을 특정 인덱스의 문자열로 변환 (Flex)
- 14. 바이트 배열의 ASCII를 문자열로 변환
- 15. 바이트 배열을 문자열로 다시 변환
- 16. 바이트 배열을 이스케이프 문자열로 변환
- 17. Arduino에서 바이트 *를 문자열로 변환
- 18. 문자열에서 문자열로 바이트 배열로 변환
- 19. 바이트 배열을 페르시아어 문자열로 변환
- 20. num8 바이트 배열의 문자열을 문자열로 변환/변환
- 21. 단일 바이트를 문자열로 변환하고 다시 바이트로 변환
- 22. 문자열로 바이트를 변환하고 다시
- 23. C#을 직렬화 된 객체의 바이트를 문자열로 변환
- 24. 바이트를 [javascript 파일로 변환]
- 25. 바이트를 부동 소수점으로 변환
- 26. 변환 바이트 문자열, 그리고 다시
- 27. ByteBuffer의 일부를 문자열로 변환
- 28. 바이트 배열을 문자열로 또는 그 반대로 변환
- 29. Python OpenCV에서 이미지를 바이트 문자열로 변환 하시겠습니까?
- 30. cv :: mat을 OpenCV의 바이트 문자열로 변환
에 대한 도움을 원했고 다음과 같은 오류 메시지가 표시되었습니다. ValueError : 바이트가 범위 (0, 256)에 있어야합니다. –
어떻게 다시 문자열로 변경합니까 ?? @Claudio –