Jun-25-2024, 11:46 AM
basically im making a reminder app as practice. i try to use regex to verify that the phone number the user inputs is UK based. So basically the input should only start with + and end with 12 digits. However some of the entries that i make are without the + symbol. my code follows. any help is much appreciated
def save_info():
"""Save the entered reminder information if valid."""
try:
df = pd.read_csv("data.csv")
except FileNotFoundError:
with open("data.csv", "w") as file:
writer = csv.writer(file)
writer.writerow(["name", "date", "description", "phone number"])
df = pd.DataFrame(columns=["name", "date", "description", "phone number"])
date = date_ent.get()
if check_date(date):
name = name_ent.get().title()
name_parts = name.split(" ")
if len(name_parts) < 2:
messagebox.showerror(title="Ooooooops",
message="You have not entered a first and last name!!\nPlease try again!!")
return
desc = description_ent.get()
phone_number = phone_ent.get()
reg_exp = re.compile(r'^\+\d{12}$')
if not re.match(reg_exp, phone_number):
messagebox.showerror(title="OOOOOOps", message="You have not entered a valid phone number!!\n"
"Please enter a phone number with a valid country code starting with the + symbol.\n"
"The phone number should be 12 digits long!!\n")
return
if check_alphabetical(name):
if check_alphabetical(desc):
if messagebox.askyesno(title="Save this information?",
message=f"On the {date} {name_parts[1]}, {name_parts[0]} should be reminded to {desc}!! "
f"Their phone number is {phone_number}\nIs this information correct?"):
saved_data=df.to_dict("records")
saved_data.append({"name":name,"date":date,"description":desc,"phone number":phone_number})
df2=pd.DataFrame(saved_data)
df2.to_csv("data.csv", index=False)
date_ent.delete(0, END)
name_ent.delete(0, END)
description_ent.delete(0, END)
phone_ent.delete(0, END)
