open¶
- baseband.helpers.sequentialfile.open(files, mode='rb', file_size=None, opener=None)[source] [edit on github]¶
Read or write several files as if they were one contiguous one.
- Parameters:
- fileslist, tuple, or other iterable of str, filehandle
Contains the names of the underlying files that should be combined, ordered in time. If not a list or tuple, it should allow indexing with positive indices, and raise
IndexError
if these are out of range.- modestr, optional
The mode with which the files should be opened (default: ‘rb’).
- file_sizeint, optional
For writing, the maximum size of a file, beyond which a new file should be opened. Default:
None
, which means it is unlimited and only a single file will be written.- openercallable, optional
Function to open a single file (default:
io.open
).
Notes
The returned reader/writer will have a
memmap
method with which part of the files can be mapped to memory (like withmemmap
), as long as those parts do not span files (and the underlying files are regular ones). For writing, this requires opening in read-write mode (i.e., ‘w+b’).Methods other than
read
,write
,seek
,tell
, andclose
are tried on the underlying file. This implies, e.g.,readline
is possible, though the line cannot span multiple files.The reader assumes the sequence of files is contiguous in time, ie. with no gaps in the data.