Python:理解os.listdir()方法



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

可以看出,我已经插入了一个包含图像的文件夹的路径。但是,当我打印内容时,它是空的。有人能解释一下原因以及解决方法吗?

这是因为os.path.isfile(f)正在检查f是否为文件;而CCD_ 3在CCD_。你应该尝试以下方法:


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

python中的

os.listdir()方法用于获取指定目录中所有文件和目录的列表。如果我们没有指定任何目录,那么将返回当前工作目录中的文件和目录列表。

您必须在文件夹路径中使用//而不是/

像这样:

files = [f for f in os.listdir('E://figs//test') if os.path.isfile(f)]

试试这个,它可能会运行

最新更新