2010-01-18 3 views
5

저는 파이썬을 처음 사용합니다. 저는 직업에 의한 C 프로그래머입니다. 헤더 파일에 추출 할 데이터가있는 파일이 있습니다. 예를 들어, 바이트 0-5 마법을 가지고, 바이트 6-8 오프셋있다 등파이썬에서 C와 비슷한 파일 헤더를 읽는 방법은 무엇입니까?

C (예제)에서

:

struct { 
    int32_t payload_offset, 
    int32_t len, 
    char *magic, 
    int32_t type 
    int32_t header_size 
} file_hdr; 

그럼 내 기능에, 나는 다음을 수행하십시오

file_hdr *hdr; 
ptr = &hdr; 
fd = open(path_to_file, "r"); 
num_read = read(fd, ptr, bytes). 

그럼이 ptr-> 유형과 같은 헤더 데이터에 액세스 할 수 ptr-> 마술 등 내가 파이썬에서 비슷한 효과를 얻을 어떻게

? 파이썬 변수에는 유형이 없으므로 파일 헤더 데이터에 액세스하는 가장 좋은 방법은 무엇입니까?

일부 결정을 내리기 위해 헤더 데이터를 사용해야합니다.

미리 감사드립니다.

답변

6

한 가지 방법은 파이썬 struct 모듈을 사용하는 것이며, 문서는 here입니다.
다른 옵션을 사용하면 더 강력한 기능이 필요한 경우 위의 기능을 수행 할 수있는 멋진 라이브러리 construct을 사용하는 것이 좋습니다.

3

이것은 일반적으로 파이썬에서 struct 모듈을 사용하여 수행됩니다. 사용자가 제공하는 형식 지정 문자열에 의해 구동되는 압축 된 2 진 표현에서 값을 추출 할 수 있습니다.

문자열에 이진 입출력을 사용하여 데이터를로드 한 다음 struct.unpack()을 사용하여 압축을 풉니 다.

관련 문제