ساخت اسکریپت مدیریت یادآوریها با پایتون
در دنیای پرمشغله امروز، مدیریت زمان و به خاطر سپردن وظایف و قرار ملاقاتها میتواند چالشبرانگیز باشد. اسکریپتهای مدیریت یادآوری میتوانند به ما در این زمینه کمک کنند. در این مقاله، به آموزش ساخت یک اسکریپت ساده اما کاربردی برای مدیریت یادآوریها با استفاده از زبان برنامهنویسی پایتون میپردازیم. این آموزش در دسته ‘اتوماسیون و اسکریپتنویسی’ قرار میگیرد و برای افراد مبتدی و متوسط در پایتون مناسب است.
پیشنیازها
برای دنبال کردن این آموزش، به موارد زیر نیاز دارید:
- نصب پایتون: اطمینان حاصل کنید که پایتون بر روی سیستم شما نصب شده است.
- آشنایی با مفاهیم پایه پایتون: متغیرها، حلقهها، شرطها، توابع و کار با فایلها.
- یک ویرایشگر متن یا IDE: برای نوشتن و اجرای کد پایتون.
طراحی اسکریپت
اسکریپت ما باید قابلیتهای زیر را داشته باشد:
- اضافه کردن یادآوری جدید
- نمایش لیست یادآوریها
- حذف یادآوری
- ذخیره یادآوریها در یک فایل
- بارگیری یادآوریها از فایل
پیادهسازی اسکریپت
ابتدا، ساختار کلی اسکریپت را ایجاد میکنیم.
def add_reminder():
pass
def view_reminders():
pass
def delete_reminder():
pass
def save_reminders(reminders, filename="reminders.txt"):
pass
def load_reminders(filename="reminders.txt"):
pass
def main():
pass
if __name__ == "__main__":
main()
تابع add_reminder()
این تابع مسئول اضافه کردن یادآوری جدید به لیست یادآوریها است.
def add_reminder():
reminder_text = input("متن یادآوری را وارد کنید: ")
reminders.append(reminder_text)
print("یادآوری با موفقیت اضافه شد.")
تابع view_reminders()
این تابع لیست یادآوریها را نمایش میدهد.
def view_reminders():
if not reminders:
print("هیچ یادآوری وجود ندارد.")
else:
print("لیست یادآوریها:")
for i, reminder in enumerate(reminders):
print(f"{i+1}. {reminder}")
تابع delete_reminder()
این تابع یک یادآوری را از لیست حذف میکند.
def delete_reminder():
view_reminders()
if not reminders:
return
try:
index_to_delete = int(input("شماره یادآوری که میخواهید حذف کنید را وارد کنید: ")) - 1
if 0 <= index_to_delete < len(reminders):
deleted_reminder = reminders.pop(index_to_delete)
print(f"یادآوری '{deleted_reminder}' با موفقیت حذف شد.")
else:
print("شماره یادآوری نامعتبر است.")
except ValueError:
print("لطفاً یک عدد صحیح وارد کنید.")
تابع save_reminders()
این تابع یادآوریها را در یک فایل ذخیره میکند.
def save_reminders(reminders, filename="reminders.txt"):
try:
with open(filename, "w", encoding="utf-8") as f:
for reminder in reminders:
f.write(reminder + "n")
print("یادآوریها با موفقیت ذخیره شدند.")
except Exception as e:
print(f"خطا در ذخیره یادآوریها: {e}")
تابع load_reminders()
این تابع یادآوریها را از فایل بارگیری میکند.
def load_reminders(filename="reminders.txt"):
reminders = []
try:
with open(filename, "r", encoding="utf-8") as f:
for line in f:
reminders.append(line.strip())
print("یادآوریها با موفقیت بارگیری شدند.")
except FileNotFoundError:
print("فایل یادآوریها یافت نشد. یک لیست جدید ایجاد میشود.")
except Exception as e:
print(f"خطا در بارگیری یادآوریها: {e}")
return reminders
تابع main()
این تابع رابط کاربری اصلی اسکریپت را پیادهسازی میکند.
def main():
global reminders
reminders = load_reminders()
while True:
print("nمنوی مدیریت یادآوریها:")
print("1. اضافه کردن یادآوری")
print("2. نمایش یادآوریها")
print("3. حذف یادآوری")
print("4. ذخیره یادآوریها")
print("5. خروج")
choice = input("انتخاب خود را وارد کنید: ")
if choice == "1":
add_reminder()
elif choice == "2":
view_reminders()
elif choice == "3":
delete_reminder()
elif choice == "4":
save_reminders(reminders)
elif choice == "5":
print("خداحافظ!")
break
else:
print("انتخاب نامعتبر است. لطفاً دوباره تلاش کنید.")
کد کامل اسکریپت
reminders = []
def add_reminder():
reminder_text = input("متن یادآوری را وارد کنید: ")
reminders.append(reminder_text)
print("یادآوری با موفقیت اضافه شد.")
def view_reminders():
if not reminders:
print("هیچ یادآوری وجود ندارد.")
else:
print("لیست یادآوریها:")
for i, reminder in enumerate(reminders):
print(f"{i+1}. {reminder}")
def delete_reminder():
view_reminders()
if not reminders:
return
try:
index_to_delete = int(input("شماره یادآوری که میخواهید حذف کنید را وارد کنید: ")) - 1
if 0 <= index_to_delete < len(reminders):
deleted_reminder = reminders.pop(index_to_delete)
print(f"یادآوری '{deleted_reminder}' با موفقیت حذف شد.")
else:
print("شماره یادآوری نامعتبر است.")
except ValueError:
print("لطفاً یک عدد صحیح وارد کنید.")
def save_reminders(reminders, filename="reminders.txt"):
try:
with open(filename, "w", encoding="utf-8") as f:
for reminder in reminders:
f.write(reminder + "n")
print("یادآوریها با موفقیت ذخیره شدند.")
except Exception as e:
print(f"خطا در ذخیره یادآوریها: {e}")
def load_reminders(filename="reminders.txt"):
reminders = []
try:
with open(filename, "r", encoding="utf-8") as f:
for line in f:
reminders.append(line.strip())
print("یادآوریها با موفقیت بارگیری شدند.")
except FileNotFoundError:
print("فایل یادآوریها یافت نشد. یک لیست جدید ایجاد میشود.")
except Exception as e:
print(f"خطا در بارگیری یادآوریها: {e}")
return reminders
def main():
global reminders
reminders = load_reminders()
while True:
print("nمنوی مدیریت یادآوریها:")
print("1. اضافه کردن یادآوری")
print("2. نمایش یادآوریها")
print("3. حذف یادآوری")
print("4. ذخیره یادآوریها")
print("5. خروج")
choice = input("انتخاب خود را وارد کنید: ")
if choice == "1":
add_reminder()
elif choice == "2":
view_reminders()
elif choice == "3":
delete_reminder()
elif choice == "4":
save_reminders(reminders)
elif choice == "5":
print("خداحافظ!")
break
else:
print("انتخاب نامعتبر است. لطفاً دوباره تلاش کنید.")
if __name__ == "__main__":
main()
توضیحات تکمیلی
* **encoding=”utf-8″**: استفاده از این پارامتر در هنگام باز و بسته کردن فایل، از نمایش صحیح کاراکترهای فارسی جلوگیری میکند.
* **try…except**: استفاده از این بلوکها برای مدیریت خطاها و جلوگیری از کرش کردن برنامه در صورت بروز مشکل.
* **global reminders**: استفاده از این کلمه کلیدی برای دسترسی به متغیر `reminders` در داخل تابع `main`.
* **line.strip()**: حذف فاصلههای خالی ابتدا و انتهای هر خط از فایل.
بهبودهای پیشنهادی
* اضافه کردن قابلیت تنظیم تاریخ و زمان یادآوری.
* استفاده از یک پایگاه داده برای ذخیره یادآوریها به جای فایل متنی.
* پیادهسازی یک رابط کاربری گرافیکی (GUI) برای اسکریپت.
* اضافه کردن قابلیت ارسال اعلان (notification) در زمان یادآوری.
* استفاده از کتابخانههایی مانند `schedule` برای زمانبندی وظایف.
این اسکریپت یک نقطه شروع خوب برای ساخت یک سیستم مدیریت یادآوری کامل با پایتون است. با استفاده از مفاهیم و تکنیکهای ارائه شده در این مقاله، میتوانید اسکریپت را گسترش داده و آن را مطابق با نیازهای خود سفارشیسازی کنید.

بدون دیدگاه