为什么 glob.glob 和 pathlib.Path.glob 对待隐藏文件的方式不同?
Why do glob.glob and pathlib.Path.glob treat hidden files differently?
考虑这个包含两个文件的文件夹:
test/
foo
.bar
在此文件夹上调用 glob.glob('*')
不会列出隐藏的 .bar
文件:
>>> glob.glob('test/*')
['test/foo']
>>> list(Path('test').glob('*'))
[PosixPath('test/.bar'), PosixPath('test/foo')]
我想知道这是有意为之还是可能 bug/oversight。
glob
module documentation 声明以点开头的文件是特殊大小写的:
glob treats filenames beginning with a dot (.) as special cases
意思是glob.glob('*')
给出的结果是有意的。但是 pathlib 的 glob
呢?我在文档中找不到任何相关信息。这是预期的行为吗?两个函数不应该产生相同的结果吗?
根据官方错误跟踪器上的 issue #26096,此差异已被视为 not a bug
,因此完全是有意为之。
感谢 @vaultah 的查找。
考虑这个包含两个文件的文件夹:
test/
foo
.bar
在此文件夹上调用 glob.glob('*')
不会列出隐藏的 .bar
文件:
>>> glob.glob('test/*')
['test/foo']
>>> list(Path('test').glob('*'))
[PosixPath('test/.bar'), PosixPath('test/foo')]
我想知道这是有意为之还是可能 bug/oversight。
glob
module documentation 声明以点开头的文件是特殊大小写的:
glob treats filenames beginning with a dot (.) as special cases
意思是glob.glob('*')
给出的结果是有意的。但是 pathlib 的 glob
呢?我在文档中找不到任何相关信息。这是预期的行为吗?两个函数不应该产生相同的结果吗?
根据官方错误跟踪器上的 issue #26096,此差异已被视为 not a bug
,因此完全是有意为之。
感谢 @vaultah 的查找。