I have an array of byte-strings in python3 (it's an audio chunks). I want to make one big byte-string from it. Simple implementation is kind of slow. How to do it better?
chunks = []
while not audio.ends():
chunks.append( bytes(audio.next_buffer()) )
do_some_chunk_processing()
all_audio=b''
for ch in chunks:
all_audio += ch
How to do it faster?
One approach you could try and measure would be to use bytes.join
:
all_audio = b''.join(chunks)
The reason this might be faster is that this does a pre-pass over the chunks to find out how big all_audio
needs to be, allocates exactly the right size once, then concatenates it in one go.