ساخت اسکریپت مدیریت مخاطبین با پایتون: اتوماسیون و اسکریپتنویسی
در دنیای امروز، مدیریت اطلاعات تماس (مخاطبین) بخش مهمی از فعالیتهای روزمره بسیاری از افراد و سازمانها است. اسکریپتنویسی با پایتون ابزاری قدرتمند برای خودکارسازی این فرآیند و افزایش بهرهوری است. این مقاله به شما آموزش میدهد که چگونه یک اسکریپت ساده اما کارآمد برای مدیریت مخاطبین با استفاده از پایتون ایجاد کنید. این آموزش در دسته ‘اتوماسیون و اسکریپتنویسی’ قرار میگیرد و برای افراد مبتدی تا متوسط در پایتون مناسب است.
پیشنیازها
قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:
- نصب پایتون: پایتون را از وبسایت رسمی آن (https://www.python.org) دانلود و نصب کنید.
- یک ویرایشگر کد: از یک ویرایشگر کد مناسب مانند VS Code، PyCharm یا Sublime Text استفاده کنید.
- آشنایی اولیه با پایتون: دانش پایهای از متغیرها، انواع دادهها، حلقهها، شرطها و توابع پایتون ضروری است.
طراحی اسکریپت
اسکریپت ما باید قابلیتهای زیر را داشته باشد:
- اضافه کردن مخاطب جدید
- نمایش لیست مخاطبین
- جستجوی مخاطب بر اساس نام
- ویرایش اطلاعات مخاطب
- حذف مخاطب
- ذخیره و بازیابی اطلاعات از یک فایل
پیادهسازی اسکریپت
برای ذخیرهسازی اطلاعات مخاطبین، از یک دیکشنری (dictionary) پایتون استفاده میکنیم. کلیدهای دیکشنری نام مخاطب و مقادیر آن، اطلاعات تماس (مانند شماره تلفن و ایمیل) خواهند بود. برای ذخیرهسازی دائمی اطلاعات، از فایل متنی استفاده میکنیم. فرمت فایل متنی به صورت زیر خواهد بود:
نام1:شماره تلفن1,ایمیل1 نام2:شماره تلفن2,ایمیل2 ...
در ادامه، کد پایتون مربوط به این اسکریپت را ارائه میدهیم:
def load_contacts(filename="contacts.txt"):
"""
اطلاعات مخاطبین را از فایل بارگیری میکند.
"""
contacts = {}
try:
with open(filename, "r", encoding="utf-8") as f:
for line in f:
name, details = line.strip().split(":")
phone, email = details.split(",")
contacts[name] = {"phone": phone, "email": email}
except FileNotFoundError:
print("فایل مخاطبین یافت نشد. یک فایل جدید ایجاد میشود.")
return contacts
def save_contacts(contacts, filename="contacts.txt"):
"""
اطلاعات مخاطبین را در فایل ذخیره میکند.
"""
with open(filename, "w", encoding="utf-8") as f:
for name, details in contacts.items():
f.write(f"{name}:{details['phone']},{details['email']}n")
def add_contact(contacts):
"""
یک مخاطب جدید به لیست مخاطبین اضافه میکند.
"""
name = input("نام مخاطب را وارد کنید: ")
if name in contacts:
print("این نام قبلاً وجود دارد. نمیتوانید مخاطب با این نام اضافه کنید.")
return
phone = input("شماره تلفن را وارد کنید: ")
email = input("ایمیل را وارد کنید: ")
contacts[name] = {"phone": phone, "email": email}
print("مخاطب جدید با موفقیت اضافه شد.")
def view_contacts(contacts):
"""
لیست مخاطبین را نمایش میدهد.
"""
if not contacts:
print("لیست مخاطبین خالی است.")
return
print("لیست مخاطبین:")
for name, details in contacts.items():
print(f"نام: {name}, شماره تلفن: {details['phone']}, ایمیل: {details['email']}")
def search_contact(contacts):
"""
مخاطب را بر اساس نام جستجو میکند.
"""
name = input("نام مخاطبی که میخواهید جستجو کنید را وارد کنید: ")
if name in contacts:
details = contacts[name]
print(f"نام: {name}, شماره تلفن: {details['phone']}, ایمیل: {details['email']}")
else:
print("مخاطبی با این نام یافت نشد.")
def edit_contact(contacts):
"""
اطلاعات مخاطب را ویرایش میکند.
"""
name = input("نام مخاطبی که میخواهید ویرایش کنید را وارد کنید: ")
if name in contacts:
print("اطلاعات فعلی:")
details = contacts[name]
print(f"شماره تلفن: {details['phone']}, ایمیل: {details['email']}")
new_phone = input("شماره تلفن جدید را وارد کنید (یا برای عدم تغییر، Enter را فشار دهید): ")
new_email = input("ایمیل جدید را وارد کنید (یا برای عدم تغییر، Enter را فشار دهید): ")
if new_phone:
contacts[name]["phone"] = new_phone
if new_email:
contacts[name]["email"] = new_email
print("اطلاعات مخاطب با موفقیت ویرایش شد.")
else:
print("مخاطبی با این نام یافت نشد.")
def delete_contact(contacts):
"""
مخاطب را حذف میکند.
"""
name = input("نام مخاطبی که میخواهید حذف کنید را وارد کنید: ")
if name in contacts:
del contacts[name]
print("مخاطب با موفقیت حذف شد.")
else:
print("مخاطبی با این نام یافت نشد.")
def main():
"""
تابع اصلی اسکریپت.
"""
contacts = load_contacts()
while True:
print("nمنوی اصلی:")
print("1. اضافه کردن مخاطب")
print("2. نمایش لیست مخاطبین")
print("3. جستجوی مخاطب")
print("4. ویرایش مخاطب")
print("5. حذف مخاطب")
print("6. خروج")
choice = input("انتخاب خود را وارد کنید: ")
if choice == "1":
add_contact(contacts)
elif choice == "2":
view_contacts(contacts)
elif choice == "3":
search_contact(contacts)
elif choice == "4":
edit_contact(contacts)
elif choice == "5":
delete_contact(contacts)
elif choice == "6":
save_contacts(contacts)
print("خروج از برنامه.")
break
else:
print("انتخاب نامعتبر. لطفاً دوباره تلاش کنید.")
if __name__ == "__main__":
main()
توضیحات کد
- load_contacts(filename): این تابع اطلاعات مخاطبین را از فایل مشخص شده بارگیری میکند. اگر فایل وجود نداشته باشد، یک دیکشنری خالی برمیگرداند.
- save_contacts(contacts, filename): این تابع اطلاعات مخاطبین را در فایل مشخص شده ذخیره میکند.
- add_contact(contacts): این تابع از کاربر نام، شماره تلفن و ایمیل مخاطب جدید را دریافت کرده و آن را به دیکشنری مخاطبین اضافه میکند.
- view_contacts(contacts): این تابع لیست مخاطبین را به همراه اطلاعات تماس آنها نمایش میدهد.
- search_contact(contacts): این تابع از کاربر نام مخاطب مورد نظر را دریافت کرده و اطلاعات آن را نمایش میدهد.
- edit_contact(contacts): این تابع از کاربر نام مخاطبی که میخواهد ویرایش کند را دریافت کرده و امکان تغییر شماره تلفن و ایمیل را فراهم میکند.
- delete_contact(contacts): این تابع از کاربر نام مخاطبی که میخواهد حذف کند را دریافت کرده و آن را از دیکشنری مخاطبین حذف میکند.
- main(): این تابع اصلی اسکریپت است که منوی اصلی را نمایش میدهد و بر اساس انتخاب کاربر، توابع مربوطه را فراخوانی میکند.
نکات تکمیلی
- مدیریت خطا: در کد بالا، مدیریت خطای سادهای برای عدم وجود فایل در نظر گرفته شده است. میتوانید با افزودن بلوکهای try-except، مدیریت خطای جامعتری را پیادهسازی کنید.
- اعتبارسنجی دادهها: برای اطمینان از صحت دادههای ورودی، میتوانید اعتبارسنجیهایی را برای شماره تلفن و ایمیل اضافه کنید.
- رابط کاربری گرافیکی (GUI): برای بهبود تجربه کاربری، میتوانید از یک کتابخانه GUI مانند Tkinter یا PyQt برای ایجاد یک رابط کاربری گرافیکی استفاده کنید.
- پایگاه داده: برای ذخیرهسازی حجم زیادی از اطلاعات مخاطبین، استفاده از یک پایگاه داده مانند SQLite یا MySQL توصیه میشود.
این اسکریپت یک نقطه شروع خوب برای ساخت یک سیستم مدیریت مخاطبین کاملتر است. با افزودن قابلیتهای بیشتر و بهبود کد، میتوانید آن را به یک ابزار قدرتمند برای مدیریت اطلاعات تماس خود تبدیل کنید.

بدون دیدگاه