我有一堆文件夹,如下例所示,并且每个文件夹中的文件数如下。现在,当我想知道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。它正在添加所有文件夹中的文件。我不知道 有什么线索吗?
答案 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"
。请注意附加的/
。