Python os.path.exists()忽略文件名的一部分

时间:2017-06-30 19:54:31

标签: python file operating-system

我有一个如下所示的目录:

> myDirectory
    > L1.zip
    > L2_abc.zip

如果文件存在,我想搜索目录以返回,但我只有zip文件名的第一部分(L1或L2)。我如何检查文件是否存在?

结果应该如下所示:

>>> file_exists("L1")
true 
>>> file_exists("L2")
true 

我目前只使用os.path.exists(),但我不知道如何忽略文件名的_abc部分。

3 个答案:

答案 0 :(得分:2)

您可以使用listdir并进行自定义检查。这是一种仅在文件/目录以L2开头时才匹配的方式

matches = [f for f in os.listdir() if f.startswith("L2")]
print(matches)

答案 1 :(得分:1)

使用glob,并检查结果输出是否为空应该可以解决问题:

from glob import glob

def file_exists(filename):
    return bool(glob(filename + '.*'))

答案 2 :(得分:0)

您可以使用pathlib

from pathlib import Path

def file_exists(prefix):
    return any(Path("myDirectory").glob(prefix + "*"))