Treat binary data as a file object?
Question:
In this code snippet (authored by another person), self.archive
is a path to a large file and raw_file
is the contents of the file read as binary data.
with open(self.archive, "rb") as f:
f.seek(offset)
raw_file = start + f.read(dlen - len(start))
...
f.write(raw_file)
This archive file contains stored image files, and I’d like to access them pygame.image.load
which requires a File object. But I need to do something like pygame.image.load(toVirtualFileObject(raw_file))
(i.e. access this archive file’s contents as File objects without writing to disk first).
Can this be done?
Answers:
This is what StringIO
(in Python 2) and io.BytesIO
in (in Python 3) are for.
In this code snippet (authored by another person), self.archive
is a path to a large file and raw_file
is the contents of the file read as binary data.
with open(self.archive, "rb") as f:
f.seek(offset)
raw_file = start + f.read(dlen - len(start))
...
f.write(raw_file)
This archive file contains stored image files, and I’d like to access them pygame.image.load
which requires a File object. But I need to do something like pygame.image.load(toVirtualFileObject(raw_file))
(i.e. access this archive file’s contents as File objects without writing to disk first).
Can this be done?
This is what StringIO
(in Python 2) and io.BytesIO
in (in Python 3) are for.