2011-11-20 17 views
5

我在写一个应该管理我的运行文件的python脚本。我想在运行它之前确保源文件夹和目标文件夹存在,我可以使用os.path.exists执行此操作。但是,我有一组文件夹runner<i>。有没有办法检查是否有一些文件夹以该名称开始?检查是否有一个名称以特定字符串开头的文件夹

例如,如果路径中 /path/to/runners 我至少有一个文件夹命名为runner

/路径/到/跑步/ $ LS FILE1.TXT
FILE2.TXT
文件夹1
文件夹2
runner1 runner35
zfolder

然后结果是真实的。删除runner1 runner35,它将是错误的。

回答

9

你可以做到以下几点:

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

使用的有用any functiongenerator expression

+0

+1这一点。如果你真的想使用匹配路径的列表,'glob'很有用,但是一个快速的非严格测试显示这个方法的速度是glob的两倍 –

4

马克Longair的答案是相当精细,和(当量)替代了这种表达是使用水珠:

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

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