Python3 pathlib 单行代码用于检查 Path 是否至少有一个特定扩展名的文件

标签 python python-3.x pathlib

我的第一次尝试得到了这个结果:

if [p for p in Path().glob('*.ext')]:

我认为这是低效的,因为在继续之前,列表理解必须消耗整个生成器对象(.glob() 返回)。

我的第二次尝试是在生成器上手动调用 .__next__() 并手动捕获 StopIteration,但我不认为这可以在一行中完成:

try:
    Path().glob('*.ext').__next__()
except StopIteration:
    # no ".ext" files exist here
else:
    # at least one ".ext" file exists here

总的来说,我是一个 Python 菜鸟,我想知道是否可以使用单行解决方案(至少比我的第一次尝试更有效)。

最佳答案

使用any() :

if any(p for p in Path().glob('*.ext')):
   # ...

或者更简单地说,

if any(Path().glob('*.ext')):
   # ...

关于Python3 pathlib 单行代码用于检查 Path 是否至少有一个特定扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62597301/

相关文章:

python - 为什么 vim 在运行 Python 代码时不在控制台中打印任何内容?

python - 'self' 作为 PyQt5 中的参数有什么区别

python - 小狗。如何动态更改顶点的图片(动画)。 OpenGL

Python 的 str.replace 不抛出异常

python - 如何修改 `pathlib.Path` 的行为?

Python pathlib.Path - 如何获取与平台无关的文件分隔符作为字符串?

python - sage/sympy/Python 中的 Riemann Theta 函数?

python - 将数据从 HTML 表单发送到 Flask 中的 Python 脚本

python - 如何从特殊点切割字符串

python - 为什么 python pathlib Path ('' ).exists() 返回 True?