检查是否存在以特定字符串开头的文件夹

8
我正在编写一个 Python 脚本,用于管理我的运行文件。在运行脚本之前,我想确保源文件夹和目标文件夹存在,可以使用 os.path.exists 来实现这一点。然而,我有一组文件夹名称为 runner<i>。是否有一种方法可以检查是否有一些文件夹以该名称开头?
例如,在路径 /path/to/runners 中,如果至少有一个名为 runner 的文件夹:

/path/to/runners/ $ ls file1.txt
file2.txt
folder1
folder2
runner1 runner35
zfolder

那么结果为 true。删除 runner1 和 runner35 后,结果将为 false。
3个回答

15

你可以做以下操作:

import os
if any(x.startswith('runner') for x in os.listdir('/path/to/runners')):
    print "At least one entry begins with 'runner'"

这使用了有用的 any 函数 和一个 生成器表达式


+1。如果您确实想要使用匹配路径列表,则“glob”非常有用,但是快速的非严格测试显示此方法大约比“glob”快两倍。 - Rob Cowie

6

Mark Longair的回答非常好,对于这种表达方式的另一种(等同的)替代方法是使用glob:

import glob
if glob.glob('/path/to/runners/runner*'):
    print "At least one entry begins with 'runner'"

6
import glob

if glob.glob('/path/to/runners/runner*'):
    print 'condition satisfied'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接