我仍然是python的初学者,我想了解下面的代码是做什么的。
files = [f for f in os.listdir('E:/figs/test') if os.path.isfile(f)]
imgs = []
#read input
for f in files:
if 'jpg' in f and 'background' not in f:
imgs.append(cv2.imread(f))
print(imgs)可以看到,我插入了一个指向包含图像的文件夹的路径。但是,当我打印内容时,它是空的。有没有人能解释一下原因和解决的方法?
发布于 2020-07-30 14:50:50
这是因为os.path.isfile(f)正在检查f是否是一个文件;但是f在E:/figs/text下。你应该尝试以下几点:
main_dir = "E:/figs/test"
files = [f for f in os.listdir(main_dir) if os.path.isfile(os.path.join(main_dir, f))]因为这将检查E:/figs/text下是否存在文件f。
发布于 2020-07-30 15:09:48
python中的os.listdir()方法用于获取指定目录下所有文件和目录的列表。如果我们不指定任何目录,那么将返回当前工作目录中的文件和目录列表。
您必须在文件夹路径中使用//而不是/
如下所示:
files = [f for f in os.listdir('E://figs//test') if os.path.isfile(f)]试试这个,它可能会运行
https://stackoverflow.com/questions/63167612
复制相似问题