2

所以我想在 Python 的一个目录下抓取第一个文件。我知道我可以这样做:

first_file = [join(path, f) for f in os.listdir(path) if isfile(join(path, f))][0]

但它很慢。有没有更好的解决方案?谢谢!

4

1 回答 1

6

您可以使用next()

first_file = next(join(path, f) for f in os.listdir(path) if isfile(join(path, f)))

请注意,如果目录中没有文件,则会引发StopIteration异常。要么处理它,要么提供一个默认值

first_file = next((join(path, f) for f in os.listdir(path) if isfile(join(path, f))), 
                  "default value here")
于 2016-01-31T13:50:12.367 回答