2017-04-20 2 views
2

이것은 간단한 질문 일 수 있습니다. 파이썬 3을 사용하는 바이너리 MIDI 파일을 읽고 있는데, 슬래시로 무엇을해야할지 모르겠으므로 16 진수 값 \x00\x00\x00\x06을 정수로 변환하는 방법을 이해하는 데 문제가 있습니다. \. 내가MIDI 파일을 읽을 때 정수에 16 진수

with open("/path/to/midi/file.mid", "rb") as f: 
    header_chunk = f.read(4) 
    length = f.read(4) 

length을 사용하고이 값을 얻으려면 값 b"\x00\x00\x00\x06"와 바이트 객체를 가진 끝납니다. 이 값은 struct.unpack("cccc", length)을 사용하여 해당 숫자로 압축을 풀 수 있지만 \, (b'\x00', b'\x00', b'\x00', b'\x06')을 포함하는 16 진수의 튜플을 반환합니다. 이 숫자를 length과 같이 대량으로 또는 개별적으로 \을 처리하지 않고도 정수로 변환 할 수있는 기본 제공 방법이 있나요? 고맙습니다. 확인

답변

1

그래, :

>>> length 
b'\x00\x00\x00\x06' 
>>> list(length) 
[0, 0, 0, 6] 

주, 당신이 당신의 bytes 개체의 개별 요소에 액세스하는 경우, 당신은 반환에 int을 얻을 :

>>> length[0] 
0 
>>> length[1] 
0 
>>> length[2] 
0 
>>> length[3] 
6 
>>>