المدونة
إزاي تعمل أتمتة للمهام باستخدام بايثون

أتمتة مهامك المتكررة باستخدام بايثون! هذا الدليل المناسب للمبتدئين هيرشدك خطوة بخطوة من خلال أمثلة عملية لأتمتة إدارة الملفات، معالجة البيانات، استخراج بيانات الويب، وأكثر من ذلك – مع نماذج كود حقيقية يمكنك استخدامها اليوم.
إيه هي أتمتة المهام باستخدام بايثون (وليه لازم تهتم بيها)؟
خليني أوصفلك موقف: الساعة 4:55 مساءً يوم الجمعة. عندك خطط للويكند، لكنك لسه بتضغط على ملفات إكسيل، بتغير أسماء ملفات، أو بتنقل بيانات من نظام لآخر. كلنا مرينا بالموقف ده، بنعمل شغل المفروض يكون… أوتوماتيكي.
هنا بيظهر بايثون زي البطل الخارق في عالم البرمجة. هو زي السكينة السويسرية للأتمتة – متعدد الاستخدامات، سهل الوصول، وسهل التعلم بشكل مفاجئ. حتى لو مكنتش “مبرمج” (لحد دلوقتي)، صيغة بايثون البسيطة تخليه مثالي لأتمتة المهام المملة.
فاكر لما اكتشفت أتمتة بايثون لأول مرة. كنت بقضي ساعتين كل يوم اتنين صباحًا في تحديث التقارير. بعد استثمار 30 دقيقة في كتابة سكريبت بايثون، استرجعت الساعتين دول – كل أسبوع! يعني أكتر من 100 ساعة في السنة ممكن أقضيها في أي حاجة تانية!
تعالوا نشوف إزاي ممكن تعملوا نفس الحاجة…
ليه نستخدم بايثون في أتمتة المهام؟
قبل ما ندخل في التفاصيل، خلينا نتكلم عن السبب. لأنه بصراحة، لو هتتعلم حاجة جديدة، لازم تعرف إيه الفايدة اللي هترجع عليك:
- توفير الوقت – أتمتة مهمة يومية بتاخد 30 دقيقة هتوفرلك أكتر من 120 ساعة في السنة
- الدقة – البني آدمين بيغلطوا لما بيعملوا مهام متكررة؛ الكمبيوتر مش بيغلط (إلا لو انت قلتله يغلط)
- قابلية التوسع – تقدر تعالج 10 ملفات أو 10,000 بنفس المجهود
- فرصة للتعلم – حتى مشاريع الأتمتة البسيطة بتعلمك مهارات برمجة قيمة
بايثون بالتحديد بيتميز لأنه قوي كفاية للأتمتة الجادة وبسيط كفاية إنك تقدر تتعلم الأساسيات في ويكند واحد. كمان، هو مجاني وبيشتغل على أي كمبيوتر تقريبًا.
أساسيات أتمتة بايثون: البداية
جاهز تبدأ؟ خلينا نغطي المكونات الأساسية لرحلة الأتمتة بتاعتك:
إعداد البيئة بتاعتك
أول حاجة – محتاج تثبت بايثون على الكمبيوتر بتاعك. روح على Python.org ونزل أحدث إصدار (ينصح بـ 3.9+). أثناء التثبيت، متنساش تختار “Add Python to PATH” – ده هيوفرلك صداع كتير بعدين.
لكتابة الكود، ممكن تستخدم محرر نصوص بسيط، لكن أنصحك بمحرر كود زي VS Code أو PyCharm (الإصدار المجاني Community Edition مثالي للمبتدئين). دول بيوفرولك ميزات مفيدة زي تلوين الكود وفحص الأخطاء.
المكتبات الأساسية للأتمتة
القوة الحقيقية لبايثون بتيجي من مكتباته – كود جاهز بيتعامل مع المهام المعقدة. هنا نجوم الأتمتة:
- os و shutil – لعمليات الملفات (إنشاء، نقل، حذف)
- pandas – للتعامل مع البيانات (ملفات إكسيل، ملفات CSV، قواعد البيانات)
- requests – لطلبات الويب (تنزيل، التفاعل مع APIs)
- Beautiful Soup – لاستخراج بيانات الويب (استخراج بيانات من مواقع الإنترنت)
- datetime – للتعامل مع التواريخ والجدولة
- pyautogui – للتحكم في الماوس والكيبورد
تقدر تثبت أي من دول باستخدام pip، مدير الحزم الخاص ببايثون. مثلاً: pip install pandas
أمثلة عملية للأتمتة (مع كود تقدر تستخدمه)
كفاية نظريات – خلينا نبدأ نشتغل مع أمثلة من الحياة الواقعية!
مثال 1: تغيير أسماء ملفات بالجملة
سبق نزلت صور عندها أسماء ملالهاش معنى زي “IMG_2371.jpg”؟ خلينا نغير أسماءها كلها مرة واحدة:
import os
# المجلد اللي فيه الملفات بتاعتك
folder = "C:/Users/YourName/Pictures/Vacation2023"
# لف على كل الملفات في المجلد
for i, filename in enumerate(os.listdir(folder)):
if filename.endswith(".jpg") or filename.endswith(".png"):
# إنشاء اسم جديد: "Vacation2023_001.jpg"
new_name = f"Vacation2023_{i+1:03d}{os.path.splitext(filename)[1]}"
# تغيير اسم الملف
os.rename(
os.path.join(folder, filename),
os.path.join(folder, new_name)
)
print(f"Renamed: {filename} → {new_name}")
السكريبت ده بياخد كل ملفات الصور وبيغير أسماءها بنمط متناسق وترقيم متسلسل. خلاص مفيش تدوير على أسماء ملفات غريبة!
مثال 2: استخراج بيانات من ملفات إكسيل متعددة
تخيل إن عندك تقارير مبيعات من محلات مختلفة، كلها في ملفات إكسيل منفصلة. السكريبت ده بيجمعهم في تقرير رئيسي واحد:
import pandas as pd
import glob
# جلب كل ملفات الإكسيل في المجلد
all_files = glob.glob("sales_reports/*.xlsx")
# إنشاء قائمة فارغة لتخزين إطارات البيانات
all_data = []
# معالجة كل ملف
for file in all_files:
# قراءة ملف الإكسيل
df = pd.read_excel(file)
# إضافة اسم المتجر (من اسم الملف) كعمود
store_name = file.split('\')[-1].replace('.xlsx', '')
df['Store'] = store_name
# إضافة للقائمة بتاعتنا
all_data.append(df)
# دمج كل البيانات في إطار بيانات واحد
combined_data = pd.concat(all_data, ignore_index=True)
# حفظ كملف إكسيل جديد
combined_data.to_excel("combined_sales_report.xlsx", index=False)
print("Combined report created successfully!")
بكده، ساعات من النسخ واللصق اختفت! السكريبت ده سهل تعديله للتعامل مع ملفات CSV أو تنسيقات بيانات أخرى.
مثال 3: استخراج بيانات الويب لمراقبة الأسعار
عايز تتابع أسعار منتجاتك المفضلة؟ السكريبت ده بيتحقق من الأسعار على موقع ويب وينبهك بالتغييرات:
import requests
from bs4 import BeautifulSoup
import time
import smtplib
def check_price(url, desired_price):
headers = {"User-Agent": "Mozilla/5.0"}
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
# هذا سيختلف حسب هيكل الموقع
price_element = soup.find('span', {'class': 'price'})
price = float(price_element.get_text().replace('$', ''))
if price <= desired_price:
send_email(url, price)
return price
def send_email(url, price):
# إعداد البريد الإلكتروني (استبدل بتفاصيلك)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login('youremail@gmail.com', 'your-password')
subject = 'السعر انخفض!'
body = f'السعر انخفض إلى ${price}. تحقق من هنا: {url}'
message = f"Subject: {subject}nn{body}"
server.sendmail('youremail@gmail.com', 'recipient@gmail.com', message)
server.quit()
print("تم إرسال البريد الإلكتروني!")
# مثال للاستخدام
url = "https://www.example.com/product/12345"
desired_price = 199.99
while True:
current_price = check_price(url, desired_price)
print(f"السعر الحالي: ${current_price}")
# تحقق مرة واحدة يوميًا
time.sleep(86400) # 24 ساعة بالثواني
ملاحظة: لنهج أكثر أمانًا، استخدم متغيرات البيئة بدلاً من كتابة كلمات مرور البريد الإلكتروني مباشرة في الكود. وفكر في استخدام خدمة API بريد مخصصة بدلاً من SMTP مباشرة.
خرافات شائعة عن الأتمتة: تم كشفها!
في بعض الخرافات المستمرة عن الأتمتة اللي ممكن تكون بتمنعك:
- خرافة: “لازم تكون خبير برمجة” – غلط! معظم أتمتة المهام محتاجة بس معرفة أساسية ببايثون. تقدر تبدأ بنسخ ولصق سكريبتات وتتعلم مع الوقت.
- خرافة: “بتاخد وقت كتير في الإعداد” – مع إن في استثمار أولي، حتى سكريبت بياخد ساعتين في الكتابة ممكن يوفرلك عشرات الساعات لو استخدمته بانتظام.
- خرافة: “الأتمتة هتحل محل وظيفتي” – في الواقع، الأتمتة عادة بتلغي الأجزاء المملة من شغلك، وبتديك حرية تركز على شغل أكثر إبداعًا واسترا