Skip to content
Advertisement

Python f string with folders

I’m trying to use regex to find a specific file name in a folder, however it seems like my regex is not working.

Inside my folder the names of the excel files are

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')

Advertisement

Answer

You are not testing your regex against anything. pattern.fullmatch will return a method object. You probably wanted to write

if pattern.fullmatch(i): 

That being said, I don’t see a reason to use a regex here. You can simply do

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

or even better (without checking all files in the folder):

from os import path
if path.exists(f"C:/<your folders>/Payments - {date}.xlsx"):
    print("Found")
else:
    print("Not found")
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement