为什么glob.glob和pathlib.Path.glob以不同方式处理隐藏文件?

时间:2018-04-16 17:00:32

标签: python glob hidden-files

考虑这个包含两个文件的文件夹:

test/
    foo
    .bar

在此文件夹上调用glob.glob('*')不会列出隐藏的.bar文件:

>>> glob.glob('test/*')
['test/foo']

pathlib.Path.glob('*')会:

>>> list(Path('test').glob('*'))
[PosixPath('test/.bar'), PosixPath('test/foo')]

我想知道这是故意还是可能是错误/疏忽。

glob module documentation表示以点开头的文件是特殊的:

  

glob将以点(。)开头的文件名视为特殊情况

意味着glob.glob('*')给出的结果是有意的。但是对于路径的glob呢?我无法在文档中找到任何相关信息。这是预期的行为吗?两个函数都不应该产生相同的结果吗?

1 个答案:

答案 0 :(得分:2)

根据官方错误跟踪器上的issue #26096,这种差异被视为not a bug,因此完全有意。

@vaultah对于查找的信用。