POSIX 符合 Python 的 glob

POSIX-compliant glob in Python

我正在 Python 中实现 C 程序的一部分。该程序使用 glob(3) to find pathnames matching a pattern. This is a C function corresponding to the glob(7) shell 内置函数。它们在 POSIX.2.

中指定

Python中的POSIXglob(3)相当于什么?

我查看了 glob 标准模块,但我对文档感到担心:它没有在任何地方提到 POSIX,使用模糊术语 "shell-like" 并且有一些非标准用于递归扩展的扩展,例如 wildstar ** 模式。

如果我不使用 recursive 标志,使用 glob.glob 函数是否安全?

我的要求是:

看看 glob 是如何实现的,它不依赖于 glob(3) 所以它可能会产生相同的结果,但不能保证产生相同的结果。 POSIX 合规性也类似(除了形式明显扩展的功能)。可能有重叠,但不能保证,这显然不是模块背后的意图。

您基本上可以改写问自己的问题。 features/behavior 是我真正需要的,glob.glob() 是我特别需要的吗?很有可能,确实如此。

或者我更愿意寻找合规声明(甚至认证),因为例如 project/customer/our 公司(出于只有他们知道(或不知道)的原因)需要它。对于 glob.glob() 你运气不好,除非你自己做 auditing/paperwork 或者雇人来做(注意,glob 的代码不是那么大)。你也可以(即使你说你不想)从 libc.soctypes 加载 glob(3)。或者在 Python 中从头开始重新实现它(或基于 glob 考虑到兼容性要求)。至于关于可能已经存在的替代方案的观点,我会推迟到进一步研究 and/or 其他人的建议。