Как я могу читать файлы из списка каталогов?

1

Здесь у меня много пациентов, каждая справка имеет 10 изображений. И у меня есть список, в котором хранятся некоторые каталоги, что я хочу.

Как загрузить/прочитать файлы только из каталога в списке (data_paths)?

# data_paths is the list
data_paths = ['./data/preprocessed_data/train/Patient009969', './data/preprocessed_data/train/Patient009928', './data/preprocessed_data/train/Patient009966'] 
data_and_seg_arr = [np.load(ii, mmap_mode='r') for ii in data_paths]


Eror:
IsADirectoryError: [Errno 21] Is a directory: './data/preprocessed_data/train/Patient009969'

Мне нужно сохранить эту форму данных. потому что мне нужно будет:

pids = [ii.split('/')[-1].split('.')[0] for ii in data_paths]
data = OrderedDict()
for ix, pid in enumerate(pids):
    data[pid] = {'data': data_and_seg_arr[ix][..., 0], 'seg': data_and_seg_arr[ix][..., 1], 'pid': pid}
return data
  • 0
    Похоже, вы хотите перебирать файлы в этих каталогах. Вам понадобится еще один цикл внутри вашего текущего. Этот ответ должен помочь.
  • 0
    Вам нужен файл как вход для np.load . Таким образом, data_paths должен содержать файлы, а не каталог
Теги:

3 ответа

0

Вам нужно будет создать еще один цикл, повторяющийся через файлы внутри списка путей.

import os
for path in data_paths:
      for file in os.listdir(path):
             data_and_seg_arr = [np.load(file, ...
0

Вы когда-нибудь пытались загрузить только один файл из своего списка?
Может быть, вы должны проверить свое "свойство файла", так как я думаю, что исключение Errno 21 python open() не numpy.
https://github.com/numpy/numpy/blob/v1.15.1/numpy/lib/npyio.py#L384

Это сообщение об ошибке поможет.

0

Предполагая, что все файлы находятся в формате jpg или png

path="/path/to/image"
#NOTE THIS IS REALLY IMPORTANT
#IF YOUR PATH IS LIKE THIS /path/to/image YOU NEED TO ADD A / AT THE END, IF 
#YOUR PATH ALREADY HAVE THE "/" AT THE END YOU DON'T NEED TO ADD IF
#EXAMPLE PROBLEM PATH:/path/to/image
#PATH WITH NO PROBLEM /path/to/image/
jpg = glob.glob(path + "/*.jpg")
png = glob.glob(path + "/*.png")
imagelist=jpg+png


>>>print(type(imagelist))
<class 'list'>

Надеюсь, что это решит вашу проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню