Попытка распечатать количество изображений

Я новичок в Python и пытаюсь запустить CNN для одного проекта. Я смонтировал gdrive и пытаюсь загрузить изображения из каталога gdrive. После этого я пытаюсь подсчитать изображения, которые у меня есть в этом каталоге. Вот мой код:

import pathlib
dataset_dir = "content/drive/My Drive/Species_Samples"
data_dir = tf.keras.utils.get_file('Species_Samples', origin=dataset_dir, untar=True)
data_dir = pathlib.Path(data_dir)

image_count = len(list(data_dir('*/*.png')))
print(image_count)

Однако я получаю следующую ошибку.

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-78-e5d9409807d9> in <module>()
----> 1 image_count = len(list(data_dir('*/*.png')))
      2 print(image_count)

TypeError: 'PosixPath' object is not callable

Не могли бы вы помочь, пожалуйста?

После предложения мой код выглядит так:

import pathlib
data_dir = pathlib.Path("content/drive/My Drive/Species_Samples/")
count = len(list(data_dir.rglob("*.png")))
print(count)

1 ответ

Решение

Вы пытаетесь скопировать файлы, которые вам нужны, с помощью одного из методов glob, которые pathlib имеет:

import pathlib

data_dir = pathlib.Path("/path/to/dir/")

count = len(list(data_dir.rglob("*.png")))

В этом случае .rglob рекурсивный глобус.

Другие вопросы по тегам