首页 > 解决方案 > 带有文件夹的 Python f 字符串

问题描述

我正在尝试使用正则表达式在文件夹中查找特定文件名,但是我的正则表达式似乎不起作用。

在我的文件夹中,excel文件的名称是

Payments - 2020-10-24.xlsx
Payments - 2020-10-25.xlsx
Payments - 2020-10-26.xlsx
Payments - 2020-10-27.xlsx
import re
import datetime

filepath = os.listdir("C:\\Users\\myUserName\\Documents\\folder")
date = today.strftime('%Y-%m-%d')

regex = fr'^Payments - {date}.xlsx$'
pattern = re.compile(regex)
 
for i in filepath:
    if pattern.fullmatch == True:
        print(i)
    else:
        print('No')

标签: pythonpath

解决方案


您没有针对任何东西测试您的正则表达式。pattern.fullmatch将返回一个方法对象。你可能想写

if pattern.fullmatch(i): 

话虽如此,我看不出有理由在这里使用正则表达式。你可以简单地做

if i == f'Payments - {date}.xlsx':
    print(i)
...

甚至更好(不检查文件夹中的所有文件):

from os import path
if path.exists(f"C:/<your folders>/Payments - {date}.xlsx"):
    print("Found")
else:
    print("Not found")

推荐阅读