我正在尝试自己练习迁移学习。
我试图统计猫和狗文件的数量(每个类别有12500张图片,总共25000张图片)。
这是我的代码。代码
这是我的图片文件夹路径输入图片描述。
我以为这是一个简单的代码,但还是搞不明白为什么我的代码结果一直是(0,0)(应该是(12500个猫文件,12500个狗文件)):(。
回答:
在glob.glob()
中使用os.path.join()
。另外,如果你的所有图片都是特定扩展名(比如,jpg),你可以将'*.*'
替换为'*.jpg*'
。
解决方案
import os, globfiles = glob.glob(os.path.join(path,'train/*.*'))
事实上,既然你没有选择特定文件扩展类型,你也可以只使用os
库来做如下操作。
import osfiles = os.listdir(os.path.join(path,'train'))
一些解释
这里的os.path.join()
方法帮助你将多个文件夹连接起来以创建路径。这在Windows/Mac/Linux系统上都有效。但是,对于Windows来说,路径分隔符是\
,对于Mac/Linux是/
。所以,不使用os.path.join()
可能会为操作系统创建一个无法解析的路径。当我对获取特定类型的文件(扩展名)感兴趣时,我会使用glob.glob
。但glob.glob(path)
需要一个有效的路径才能工作。在我的解决方案中,os.path.join()
从路径组件创建路径,并将其输入到glob.glob()
中。
为了更清楚,我建议你查看os.path.join
和glob.glob
的文档,分别是os.path.join
和glob.glob
。
另外,还可以查看pathlib
模块作为os.path.join()
的路径操作替代方案,文档见pathlib
。