الدليل الشامل لمجالات واستخدامات لغة بايثون Python

 

استخدامات بايثون


غالبًا ما يتحيز المبرمجون والمطورون بشكل كبير للتقنيات ولغات البرمجة التي يستخدمونها ويوصون باستخدامها في مختلف المجالات، فمن يستخدم لغة بايثون في برمجة الويب سيوصيك بها ومن يستخدم جافا سكريبت سينصحك باستخدامها.. إلخ.
لكن هناك اعتبارات أخرى يجب الانتباه لها عند اختيار لغة البرمجة الأنسب لنوع التطبيقات التي ستستخدمها فبعض اللغات تصلح أكثر من غيرها في حالات وتطبيقات معينة، وفي مقال اليوم أعرفكم على أهم التطبيقات التي تصلح لها لغة البرمجة الشهيرة بايثون Python.

قبالرغم من أن لغة البرمجة بايثون متعددة الاستخدامات إلا أنها لا تبرع في كل شيء لذا سأوضح لك في الفقرات التالية أهم المجالات الرئيسية التي تصلح فيها لغة بايثون Python بشكل مثالي مع أمثلة عملية معززة.

أهم مجالات لغة بايثون

من أبرز مجالات بايثون نذكر:

  • أتمتة المهام Scripting and Automation
    1. إرسال رسائل البريد الإلكتروني
    2. تنظيم وإدارة الملفات
  • معالجة البيانات
  • استخراج البيانات من الملفات النصية أو صفحات الويب Web Scraping
  • اختبار التطبيقات البرمجية

لنشرح المزيد من التفاصيل حول أهمية بايثون في كل مجال من هذه المجالات

  • استخدام لغة بايثون في أتمتة المهام (Scripting and Automation)

تعد لغة بايثون من لغات البرمجة الرائدة في مجال كتابة سكريبتات برمجية لأتمتة المهام المتكررة لما تتمتع به من سهولة ولما توفره من مكتبات مساعدة منوعة تساعدك على الحصول على النتائج المطلوبة بشكل أسرع من لغات البرمجة الأخرى.
ومن أبرز المهام التي يمكنك أتمتتها باستخدام لغة بايثون Python إرسال كميات كبيرة من رسائل البريد الإلكتروني وإدراة الملفات ومعالجة البيانات المختلفة.

1. إرسال البريد الإلكتروني باستخدام بايثون

في حال كنت تحتاج لإرسال نشرات بريد إلكتروني لمجموعة كبيرة من المشتركين بشكل متكرر كل يوم أو كل أسبوع فمن الأفضل أتمتة هذه العملية، وهنا تساعدك لغة بايثون حيث يمكنك من خلالها كتابة أكواد برمجية مخصصة لإرسال رسائل إلكترونية للعديد من المشتركين بكل سهولة.
لكن إرسال الرسائل الإلكترونية يتطلب الوصول إلى خادم SMTP أو خدمة مماثلة، كما يحتاج لاستخدام واجهة برمجة تطبيقات API خاصة لإرسالها كما في الكود التالي الذي يعتمد على خدمة Amazon SES لإرسال البريد الإلكتروني كما يتوجب اتخاذ إجراءات معينة لتجنب التأثير على تقييم النطاق واعتبار الرسائل بريد مزعج أو سبام Spam.
import boto3
import json

# S3 تخزن عناوين البريد الإلكتروني
s3_bucket = ''
# اسم الحاوية bucket S3
# قدم المسار إلى ملفك في S3 bucket

s3_key = 'mail_list/addresses.txt'

s3_client = boto3.client('s3')

# استرجاع معرفات البريد الإلكتروني من الملف

email_id = email_id.strip()
# إزالة الفراغات في بداية ونهاية النص
ses_client = boto3.client('ses')
s3_object = s3_client.get_object(Bucket=s3_bucket, Key=s3_key)
email_ids = s3_object['Body'].read().decode('utf-8').split('\n')

# إرسال البريد الإلكتروني لكل معرف بريد إلكتروني

for email_id in email_ids:

# أداء عمليات إرسال البريد الإلكتروني باستخدام عميل SES

response = ses_client.send_email(
Source='<FromAddress>',
# البريد الإلكتروني المرسل
Destination={'ToAddresses': [email_id]},
# قائمة البريد الإلكتروني المستلم
Message={
'Subject': {'Data': 'عنوان البريد الإلكتروني الخاص بك'},
'Body': {'Text': {'Data': 'جسم البريد الإلكتروني الخاص بك'}}
}
)

print(f"تم إرسال البريد الإلكتروني إلى {email_id}. رقم الرسالة: {response['MessageId']}")


يمكنك هذا الكود من إرسال رسائل البريد الإلكتروني إلى قائمة من عناوين البريد الإلكتروني المخزنة في ملف نصي على خدمة التخزين السحابية S3 باستخدام خدمة Amazon SES وعليك استبدال <FromAddress> في الكود بعنوان البريد الإلكتروني الذي ترغب في استخدامه كمصدر لرسائل البريد الإلكتروني كي يعمل الكود بشكل صحيح.

2. تنظيم وإدارة الملفات باستخدام لغة بايثون


يمكنك أتمتة مهام أخرى باستخدام لغة بايثون Python ومن بينها تنظيم وإدارة الملفات وإعادة تسميتها ونسخها وحذفها، على سبيل المثال يقوم الكود التالي بأتمتة مهام تنظيم مجموعة من ملفات الملاحظات المكتوبة بتطبيق المفكرة حيث تحفظ جميع الملاحظات في مجلد عام باسم inbox مخصص لمعالجتها. بعدها يقوم الكود البرمجي بنقل الملاحظات من المجلد inbox إلى المجلدات الفرعية المناسبة بصورة ذاتية بناءً على محتوى المعلومات التوضيحية التي تسبق الملاحظة مثل اسمها وفئتها.
ينشئ الكود قائمة تحتوي على أسماء جميع الملفات الموجودة في المجلد inbox ثم يمر على كل ملف في القائمة ويقرأ المعلومات التي تسبق الملاحظة ثم يتحقق مما إذا كانت المعلومات تحتوي على خاصية تحدد الفئة وعندها ينقل الملاحظة إلى المجلد الفرعي المناسب وإذا كان المجلد الفرعي غير موجود، سيطبع رسالة توضيحية تخبر المستخدم بعدم وجود المجلد.
إلبك الكود البرمجي بلغة بايثون Python لتحقيق هذه المهمة:

import shutil
import os
import frontmatter
# قائمة الخصائص والمجلدات الوجهة المقابلة
frontmatter_to_dir = {
    'project': '1. Projects',   # مجلد المشاريع
    'area': '2. Areas',         # مجلد المناطق
    'resource': '3. Resources', # مجلد الموارد
}
def try_move_file(file, destination):
    print('- نقل الملف', file, "إلى", destination)
    try:
        shutil.move(file, destination)
    except Exception as err:
        print('-  - المشروع غير موجود', err)

# قراءة جميع الملفات داخل المجلد "inbox"
notes = os.listdir('!inbox')
for note in notes:
    note_path =  f"!inbox/{note}"
    # قراءة المعلومات التوصيفية للملف
    note_metadata = frontmatter.load(note_path)
    # التحقق مما إذا كان للملف خاصية لتصنيف الملاحظة،
    # على سبيل المثال: مشروع، منطقة، مورد
    for group, group_destination in frontmatter_to_dir.items():
        if group in note_metadata:
            # محاولة نقل الملف، قد يكون الحالة أن المشروع مكتوب بشكل خاطئ في هذه الحالة لن يتم فعل أي شيء مع الملاحظة
            try_move_file(note_path, f"{group_destination}/{note_metadata[group]}/{note.replace('Obsidian', 'Notepad')}")

  • معالجة البيانات

تناسب لغة بايثون كذلك مجال معالجة البيانات فسواء كنت تحاول تحرير النصوص أو معالجة الصور، أو تحليل مجموعة بيانات ضخمة، أو إجراء حسابات معقدة، فستجد العديد من مكتبات بايثون التي تناسب جميع الحالات.

عادةً ما أقوم بإنشاء نصوص برمجية في Python لفهم المعلومات ومساعدتي في الحسابات على سبيل المثال كتبت هذا الكود البرمجي كي يساعدني في حساب رواتب الموظفين في الشركة التي أعمل بها، وكما تعرف يتطلب حساب رواتب الموظفين معرفة العديد من التفاصيل، مثل الراتب الأساسي، الحوافز، والضرائب. فيما يلي مثال بسيط لبرنامجي الخاص ببايثون الذي يقوم بحساب الراتب الشهري للموظفين:
class Employee: def __init__(self, name, basic_salary, bonuses=0): self.name = name self.basic_salary = basic_salary self.bonuses = bonuses def calculate_salary(self): # حساب الراتب الشهري total_salary = self.basic_salary + self.bonuses return total_salary # قائمة بالموظفين employees = [ Employee("محمد", 5000, 1000), Employee("فاطمة", 6000, 500), # يمكنك إضافة المزيد من الموظفين هنا ] def print_payroll(employee): print(f"اسم الموظف: {employee.name}") print(f"الراتب الشهري: {employee.calculate_salary()} دولار\n") def main(): print("حساب رواتب الموظفين\n") # طباعة الرواتب لكل موظف for employee in employees: print_payroll(employee) if __name__ == "__main__": main()

هنا استخدمت صنف برمجي باسم Employee لتمثيل كل موظف ومعلوماته الأساسية مثل الاسم والراتب الأساسي والمكافآت. وعرفت الدالة calculate_salary لحساب الراتب الشهري الكامل بناءً على الراتب الأساسي والمكافآت، أما الدالة الرئيسية main فهي تنشئ لي كائن لكل موظف وتطبع. يمكنك تعديل هذا البرنامج حسب احتياجاتك وإضافة مزيد من المعلومات أو التفاصيل حسب متطلبات شركتك، مثل حساب الضرائب أو الاستحقاقات الأخرى.

  • استخراج البيانات من الملفات النصية أو صفحات الويب Web Scraping

يمكنك استخدام لغة بايثون لاستخراج البيانات من المواقع الإلكترونية، وتحليل محتوى الويب والحصول على تغذيات RSS من عدة مواقع ويب تتصفحها بشكل يومي.
على سبيل المثال يتطلب عملي الحصول على سعر صرف الليرة التركية مقابل الدولار يوميُا لذا كتبت كود برمجي بلغة بايثون لاستخراج سعر الصرف من موقع الأخبار المالية https://www.investing.com/ والبحث فيه عن سعر الصرف وللقيام بذلك احتجت إلى تحليل كود HTML الخاص بالموقع واستخراج معلومات من عناصر DOM والبحث عن معلومات سعر صرف الدولار مقابل الليرة التركية لتاريخ اليوم وطباعتها.
import requests from bs4 import BeautifulSoup # تحميل موقع الجريدة لاستخراج معلومات حول سعر الصرف الحالي للدولار الأمريكي مقابل الليرة التركية URL = 'https://www.investing.com/currencies/usd-try/' page = requests.get(URL) # تحليل البيانات HTML soup = BeautifulSoup(page.content, "html.parser") # استخدام الدالة select للعثور على عنصر في DOM # في حالتنا، نحتاج إلى اختيار span داخل رابط له عنوان معين span = soup.select('a[title="Dólar blue"] span')[0] price = span.get_text() print(price)


يستخدم الكود مكتبتي Requests و BeautifulSoup لاستخراج معلومات سعر الصرف الحالي بين الدولار الأمريكي والليرة التركية ويبدأ بتحميل صفحة الويب باستخدام مكتبة requests، ثم تحليل الصفحة باستخدام مكتبة BeautifulSoup. بعدها يستخدم الدالة select للعثور على العنصر المحدد في DOM (Document Object Model). في هذه الحالة، أستخدمها للبحث عن عنصر span داخل رابط (a) الذي يحمل عنوان محدد. أخيرًا، أستخرج النص من العنصر span وأطبعه ويمكنك على سبيل المثال إرسال النتائج عبر البريد الإلكتروني أو القيام بعمليات معالجة أخرى حسب الطلب.

  • تطوير تطبيقات الويب وواجهات برمجة التطبيقات APIs

رغم أنه لا يمكنك القيام بتطوير تطبيقات الويب بالكامل باستخدام لغة بايثون وحدها فهي تصلح فقط لتطوير الواجهات الخلفية للويب حيث ستحتاج لاستخدام لغات HTML و CSS و JavaScript لبرمجة الواجهات الأمامية للويب لكن بايثون لغة رائعة لتطبيقات الويب وتوفر العديد من المكتبات وأطر العمل الشهيرة مثل جانغو Django وفلاسك Flask و FastAPI التي تساعدك على بناء تطبيقات الويب وواجهات البرمجة الخاصة بك بسهولة كبيرة.
لذا تستخدم شركات تقنية كبرى مثل مايكروسوفت وإنستغرام وبينتيريست بوست بايثون لتطوير تطبيقاتها ما يدل على قوة اللغة وكفائتها في تطوير الويب وبالنسبة لي أفضل شخصيًا تطوير الواجهات الأمامية لتطبيقات الويب باستخدام NextJS مع واجهة برمجة تطبيقات بايثون FastAPI لبناء الواجهات الخلفية للويب ولك أن تختار ما تشاء فالخيارات كثيرة وكلها فعالة.

  • اختبار التطبيقات البرمجية

تستخدم لغة بايثون Python على نطاق واسع في اختبار التطبيقات وتوفر العديد من المكتبات والأدوات المتاحة التي تسهل عملية اختبار التطبيقات مثل مكتبة Selenium و unittest و PyTest.
إليك مثالُا عمليًا على اختبار تطبيقات الويب باستخدام لغة البرمجة بايثون:


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

# تعيين متصفح فايرفوكس لاستخدامه في الاختبار
driver = webdriver.Firefox()
# تحميل موقع الويب المستهدف
driver.get("http://www.python.org")
# التحقق من تحميل الصفحة عن طريق مقارنة عنوان الصفحة
assert "Python" in driver.title
# البحث عن صندوق البحث بواسطة الاسم
elem = driver.find_element(By.NAME, "q")
# مسح محتوى صندوق البحث 
elem.clear()
# كتابة "pycon"
elem.send_keys("pycon")
# الضغط على مفتاح Enter لتشغيل نموذج البحث
elem.send_keys(Keys.RETURN)
# التحقق من عدم وجود النص "No results found." في صفحة الويب
assert "No results found." not in driver.page_source
# إغلاق المتصفح
driver.close()

يستخدم هذا الكود كما تلاحظ مكتبة Selenium لتشغيل متصفح فايرفوكس Firefox والتفاعل مع صفحة الويب وفتح موقع الويب الرسمي للغة البرمجة بايثون وهو موقع http://www.python.org، ثم يبحث عن المكون الخاص بصندوق البحث ويكتب الكلمة pycon بداخله ثم يضغط على مفتاح Enter لتنفيذ البحث والتحقق من الحصول على النتائج الصحيحة.


في الختام

تعرفت في هذا المقال على أهم مجالات لغة بايثون Python أحد أكثر لغات اابرمجة قوةً وتنوعًا والمناسبة لمجموعة متنوعة من المشاريع. فهي مناسبة لأتمتة المهام، ومعالجة البيانات، وبناء تطبيقات الويب، وتحليل البيانات، وتنفيذ الذكاء الاصطناعي، واختبار التطبيقات كما أنها لغة سهلة التعلم والقراءة، ولديها مكتبات قوية يمكن أن تساعدك على تحقيق النتائج المطلوبة بسرعة وكفاءة.

شكرًا لقراءتك للمقال أرجو أن تكون وجدت فيه الفائدة المرجوة، وإذا كان لديك المزيد من الأسئلة أو إذا كان هناك شيء آخر يمكنني مساعدتك فيه، فلا تتردد في طرح السؤال كما يمكنك الاطلاع على كتابي الذي نشرته حديثًا مرحبًا بايثون وستجد فيه دليلاً شاملاً عن لغة بايثون يناسب المبتدئين في تعلم اللغة.

Next Post Previous Post
No Comment
Add Comment
comment url