“IsADirectoryError: [Errno 21] Is a directory: ” It is a file
It seems that ./data/preprocessed_data/train/Patient009969 is a directory, not a file. os.listdir() returns both files and directories. Maybe try using os.walk() instead. It treats files and directories separately, and can recurse inside the subdirectories to find more files in a iterative way: data_paths = [os.path.join(pth, f) for pth, dirs, files in os.walk(in_dir) for f in files]