문제

파이썬에서는 다음을 사용할 수 있습니다 스트링기오 문자 데이터에 대한 파일과 같은 버퍼입니다. 메모리 매핑 파일 기본적으로 이진 데이터에 대해 비슷한 작업을 수행하지만 기초로 사용되는 파일이 필요합니다.파이썬은 바이너리 데이터를위한 파일 객체를 가지고 있으며 자바의 것과 동등한 메모리 만 가지고 있습니까 사이트맵?

내가 가 사 는 메모리서 우편 를 만들고다 지프파일 파일과 같은 개체가 필요합니다.

도움이 되었습니까?

해결책

io.BytesIO 클래스를 찾고있을 것입니다.바이너리 데이터를 지원한다는 점을 제외하면 StringIO와 똑같이 작동합니다. 라코 디스

StringIO에서 TypeError 발생 : 라코 디스

다른 팁

만 당신 당신 떤 니드 데이터를 넣 려 StringIO 그리고 당신은 사용하지 않도록주의 cStringIO 괜찮을 거야

에 따르면 스트링기오 문서화,당신이 유니 코드 또는 8 비트 중 하나를 유지하는 한 모든 것이 예상대로 작동합니다.아마도, StringIO 누군가가 할 때 특별한 일을합니까 f.write(u"asdf") (지필이 하지 않는 것,내 지식)어쨌든;

import zipfile
import StringIO

s = StringIO.StringIO()
z = zipfile.ZipFile(s, "w")
z.write("test.txt")
z.close()
f = file("x.zip", "w")
f.write(s.getvalue())
s.close()
f.close()

예상대로 작동하며 결과 아카이브의 파일과 원본 파일 사이에는 차이가 없습니다.

이 접근 방식이 작동하지 않는 특정 사례를 알고 있다면,나는 그것에 대해 듣는 것이 가장 관심이있을 것입니다:)

struct 패키지를보십시오 : https://docs.python.org/library/struct.html 을 사용하면 문자열을 압축 된 바이너리 데이터로 해석 할 수 있습니다.

이 질문에 완전히 답할 수 있는지 확실하지 않지만 struct.unpack ()을 사용하여 바이너리 데이터를 python 객체로 변환 할 수 있습니다. 라코 디스

이 예에서 ">"는 big-endian을 읽으라고 "h"는 2 바이트 short를 읽고 "l"은 4 바이트 길이를 나타냅니다.이진 데이터에서 읽어야하는 모든 항목으로 분명히 변경할 수 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top