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(3)
的结果匹配,错误处理可能不同
- 应该适用于 Python 2 和 Python 3
- 只需要 Linux 支持
- 提到 PyPi 包的答案很好,我更喜欢可以审计和出售的较小的包。
- 我可以使用 ctypes,但我正在寻找 Pythonic 解决方案
看看 glob 是如何实现的,它不依赖于 glob(3)
所以它可能会产生相同的结果,但不能保证产生相同的结果。 POSIX 合规性也类似(除了形式明显扩展的功能)。可能有重叠,但不能保证,这显然不是模块背后的意图。
您基本上可以改写问自己的问题。 features/behavior 是我真正需要的,glob.glob()
是我特别需要的吗?很有可能,确实如此。
或者我更愿意寻找合规声明(甚至认证),因为例如 project/customer/our 公司(出于只有他们知道(或不知道)的原因)需要它。对于 glob.glob()
你运气不好,除非你自己做 auditing/paperwork 或者雇人来做(注意,glob
的代码不是那么大)。你也可以(即使你说你不想)从 libc.so
和 ctypes
加载 glob(3)
。或者在 Python 中从头开始重新实现它(或基于 glob
考虑到兼容性要求)。至于关于可能已经存在的替代方案的观点,我会推迟到进一步研究 and/or 其他人的建议。
我正在 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(3)
的结果匹配,错误处理可能不同 - 应该适用于 Python 2 和 Python 3
- 只需要 Linux 支持
- 提到 PyPi 包的答案很好,我更喜欢可以审计和出售的较小的包。
- 我可以使用 ctypes,但我正在寻找 Pythonic 解决方案
看看 glob 是如何实现的,它不依赖于 glob(3)
所以它可能会产生相同的结果,但不能保证产生相同的结果。 POSIX 合规性也类似(除了形式明显扩展的功能)。可能有重叠,但不能保证,这显然不是模块背后的意图。
您基本上可以改写问自己的问题。 features/behavior 是我真正需要的,glob.glob()
是我特别需要的吗?很有可能,确实如此。
或者我更愿意寻找合规声明(甚至认证),因为例如 project/customer/our 公司(出于只有他们知道(或不知道)的原因)需要它。对于 glob.glob()
你运气不好,除非你自己做 auditing/paperwork 或者雇人来做(注意,glob
的代码不是那么大)。你也可以(即使你说你不想)从 libc.so
和 ctypes
加载 glob(3)
。或者在 Python 中从头开始重新实现它(或基于 glob
考虑到兼容性要求)。至于关于可能已经存在的替代方案的观点,我会推迟到进一步研究 and/or 其他人的建议。