【问题标题】:Trying to print image count尝试打印图像计数
【发布时间】:2021-03-12 12:17:37
【问题描述】:

我是 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)

【问题讨论】:

    标签: conv-neural-network pathlib gdrive


    【解决方案1】:

    您正在尝试使用 pathlib 具有的一种 glob 方法来 glob 文件:

    import pathlib
    
    data_dir = pathlib.Path("/path/to/dir/")
    
    count = len(list(data_dir.rglob("*.png")))
    

    在这种情况下,.rglob 是一个递归 glob。

    【讨论】:

    • 感谢您的建议。我很感激。但是,它仍然打印计数为 0。它看到主目录的内容和目录中的文件夹内容(PNG 文件),但仍然打印计数为 0。您知道可能是什么问题吗?
    • 您确定目录中有.png文件吗? rglob方法中的文本区分大小写,所以*.png*.PNG
    • 看起来我在 data_dir = pathlib.Path("content/drive/My Drive/Species_Samples/") 中的内容之前错过了斜线。代码现在很重要。谢谢您的帮助。我很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 2022-11-20
    • 2019-08-29
    • 2016-03-18
    • 2015-06-04
    • 2013-06-15
    • 2013-11-14
    相关资源
    最近更新 更多