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()
>>>