2009-06-09 4 views
11

독학으로 파이썬 애호가로서 표준 형식을 사용하여 이진 파일을 가져오고 내보내는 법을 배우려면 어떻게해야합니까?파이썬에서 이진 파일 입출력은 어디에서 시작해야합니까?

아마존 킨들이 읽을 수 있도록하기 위해 ePub 전자 책 (XHTML + CSS in zip)을 mobipocket (Palmdoc) 형식으로 변환하는 스크립트를 구현하고 싶습니다. 내가하고있는 프로젝트).

이미 서적 라이브러리 관리를위한 멋진 오픈 소스 프로젝트가 있습니다 : Calibre. 나는 이것을 스스로 학습/자기 가르침 연습으로 구현하려고 노력했다. 나는 그들의 python source code을보고 시작했고, 나는 무엇이 계속되고 있는지 전혀 알지 못한다는 것을 깨달았다. 물론, 무엇보다도 독학을 할 때 큰 위험은 여러분이 모르는 것을 모르는 것이 아닙니다.

이 경우이 바이너리 파일과 파이썬 코드 (struct?)로 작업하는 방법에 대해 많이 알지 못합니다. 하지만 나는 일반적으로 이진 파일에 대한 많은 지식을 잃어버린 것 같아요. 그리고 나는 그들과 함께 일하는 방법을 이해하는데 도움이되고 싶습니다. mobi/palmdoc 헤더의 Here is a detailed overview. 감사!

편집 : 아무런 문제가 없습니다. 바이너리 파일 작업에 대한 기본 지식을 얻는 방법에 대한 조언이 있습니까? 파이썬 특정은 도움이되지만 다른 접근법 또한 유용 할 수 있습니다.

TOM : 질문으로 편집, 추가 소개/더 나은 제목

+4

그럼 정확한 질문은 무엇입니까? – NicDumZ

답변

10

당신은 아마 당신이 당신의 문제 지적과 같이 struct 모듈을 시작하고, 물론, 이진 파일을 열어야합니다.

기본적으로 파일의 시작 부분부터 시작하여 부분별로 선택하십시오. 그것은 번거 롭긴하지만 큰 문제는 아닙니다. 파일이 압축되거나 암호화되는 경우 상황이 더 어려워 질 수 있습니다. 그 내용을 알고있는 파일부터 시작하여 항상 추측하지는 않는 한 도움이됩니다.

조금만 시도해보십시오. 그러면 더 구체적인 질문이 나올 수 있습니다.

0

바이너리 파일로 작동하는 파이썬 도구를 직접 가르치려면 this will get you going. 재미도. 바이너리, zip, 이미지 ... 많은 연습.

2

이진 파일을 구성하고 분석하려는 경우 struct 모듈을 사용하면 기본 도구가 제공되지만 특히 바이트 수가 아닌 것을 보려는 경우에는 그다지 친숙하지 않습니다.

도울 수있는 모듈이 있습니다 (예 : BitVector, bitarraybitstring). (나는 bitstring을 선호하지만 나는 그것을 썼기 때문에 편향 될 수있다).

이진 형식을 구문 분석하려면 hachoir 모듈이 좋지만 현재 요구 사항이 너무 높다고 판단됩니다.

관련 문제