Glob模块返回错误值

时间:2019-05-12 19:40:17

标签: python-2.7 glob

我有一堆文件夹,如下例所示,并且每个文件夹中的文件数如下。现在,当我想知道Pos2文件夹中有多少文件时,我得到的输出是错误的。对于其他文件夹,它给出正确的。我做错什么了吗?

./a/Pos2/              8497 files              
./a/Pos22/             4227 files 
./a/Pos23/              2052 files 
./a/Pos26/              2633 files 

import glob
DIR='a/Pos2'
files = [f for f in glob.glob(DIR + "**/*.mat")]
len(files)

我得到的答案是17409。它正在添加所有文件夹中的文件。我不知道 有什么线索吗?

1 个答案:

答案 0 :(得分:1)

DIR='a/Pos2'
files = [f for f in glob.glob(DIR + "**/*.mat")]

DIR + "**/*.mat"的结果为"a/Pos2**/*.mat",与所有./a/Pos2/*.mat./a/Pos22/*.mat./a/Pos23/*.mat./a/Pos26/*.mat匹配。

要仅在a/Pos2中找到文件,请使用"a/Pos2/*.mat"DIR + "/*.mat"

或者,要在a/Pos2的所有子文件夹中查找所有文件,请使用"a/Pos2/**/*.mat"DIR + "/**/*.mat"。请注意附加的/