0

我正在编写一个函数来返回目录中的随机文件,而且 - 我希望能够匹配文件名中的子字符串。

def get_rand_file(folder, match=None):
    if match == None:
        return random.choice(os.listdir(folder))
    else:
        matching = []
        for s in os.listdir(folder):
            if match in s:
                matching.append(s)
        return random.choice(matching)

这段代码可以工作,但我正在处理大量文件,这段代码需要一段时间,我尝试使用列表理解和映射来完成它,但我无法让它工作。有什么建议么?

4

1 回答 1

2
def get_rand_file(folder, match=None):
   if match == None:
       return random.choice(os.listdir(folder))
   else:
       return random.choice([s for s in os.listdir(folder) if match in s])

关于列表理解的文档:

http://docs.python.org/tutorial/datastructures.html#list-comprehensions

于 2012-08-02T08:37:14.643 回答