What is an efficient way to read and store input data from multiple files in python?
I want to train a classifier for 8000 data samples in python (using sklearn or pytorch libraries). But, each data is a times-series stored in a .wav file.

Do I have to first read all 8000 files in a loop and store them in a big file, and read that big file each time I want to train a classifier? or there is a more efficient way for such cases?

No you don't need to have one big file. 
At some point you may lack the GPU memory (memory overall).
What you need is lazy loading.

In PyTorch you have the Dataset and DataLoader classes.

Dataset just need to implement two methods.

class Dataset(object):

    def __getitem__(self, index):
        raise NotImplementedError

    def __len__(self):
        raise NotImplementedError


DataLoader class is there to provide you the single batch of data. If batch size is 64  (bs=64) this means 64 .wav files from once. So you will instruct the DataLoader to load bs of data from once. This is lazy loading.
