본문 바로가기
파이썬

파이썬 Python의 바이너리 파일에서 데이터 읽기 및 해석

by º기록 2020. 10. 30.
반응형

파일을 바이트 단위로 읽고 각 바이트의 마지막 비트가 설정되어 있는지 확인하고 싶습니다.

#!/usr/bin/python

def main():
    fh = open('/tmp/test.txt', 'rb')
    try:
        byte = fh.read(1)
        while byte != "":
            if (int(byte,16) & 0x01) is 0x01:
                print 1
            else:
                print 0
            byte = fh.read(1)
    finally:
        fh.close

    fh.close()

if __name__ == "__main__":
        main()

내가 얻는 오류는 다음과 같습니다.

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'

누구 아이디어? 구조체와 binascii 모듈을 사용하여 성공하지 못했습니다.

 

해결 방법

 

int 대신 ord 를 사용하려고합니다.

if (ord(byte) & 0x01) == 0x01:

 

참조 페이지 https://stackoverflow.com/questions/3943149

 

 

반응형

댓글