使用正则表达式

时间:2017-10-23 11:07:14

标签: python regex python-2.7 os.walk

我正在尝试在目录中查找文件。

我想要找到的文件有两种可能的命名方式。 它可以是三个大写字母和文件扩展名的组合(例如:“ABC.xlsx”),也可以是3个大写字母的组合,字符串“_diff”和扩展名(例如:“ABC_diff.xlsx”)。

这是我的代码,直到现在:

def find_files(directory): # Function that iterates over files in a directory
for root, dirs, files in os.walk(directory):
    for basename in files:
        if re.match(r'\b[A-Z]+\b.xlsx', basename):
            basename = os.path.splitext(basename)[0]
            yield basename

此功能可以找到“ABC.xlsx”类型的文件,但我希望能够找到这两种可能性。

1 个答案:

答案 0 :(得分:2)

使用具有以下模式的re.search()函数:

...
if re.search(r'[A-Z]{3}(_diff)?\.xlsx$', basename):