A .bsa file is an archive format used by Bethesda (Morrowind, Oblivion,
Fallout 3).
Regression tests
Read a BSA file
>>>
>>> stream = open('tests/bsa/test.bsa', 'rb')
>>> data = BsaFormat.Data()
>>> data.inspect_quick(stream)
>>> data.version
103
>>> data.inspect(stream)
>>> data.folders_offset
36
>>> hex(data.archive_flags.to_int(data))
'0x703'
>>> data.num_folders
1
>>> data.num_files
7
>>>
>>>
Parse all BSA files in a directory tree
>>> for stream, data in BsaFormat.walkData('tests/bsa'):
... print(stream.name)
tests/bsa/test.bsa
Create an BSA file from scratch and write to file
>>> data = BsaFormat.Data()
>>>
>>> from tempfile import TemporaryFile
>>> stream = TemporaryFile()
>>>