توسعه دهندگان اغلب به پشته فناوری خود بسیار علاقه مند هستند و احتمالاً آن را برای هر چیزی توصیه می کنند.

بسیار متداول است که می‌بینیم توسعه‌دهندگان در رسانه‌های اجتماعی به اشتراک می‌گذارند که چگونه می‌توانید هر چیزی را با جاوا اسکریپت بسازید یا چگونه پایتون برای دانشمندان داده عالی است.

به عنوان یک طرفدار پایتون، من در واقع همیشه از پایتون برای پروژه هایم استفاده نمی کنم زیرا پایتون در همه چیز عالی نیست. بنابراین امروز، می‌خواهم نظرات خود را در مورد موارد استفاده اصلی که پایتون در آنها می‌درخشد، به اشتراک بگذارم.

اسکریپت نویسی و اتوماسیون

به لطف ظهور بدون کد و ابزارهایی مانند برنامه Shortcuts اپل، نوشتن اسکریپت و خودکار کردن وظایف هرگز آسان تر نبوده است. اما حتی پس از ادغام آن‌ها در روال روزانه‌ام، مواقع زیادی وجود دارد که هنوز برای انجام کارها به پایتون تکیه می‌کنم.

من تا حدودی از پایتون استفاده می کنم زیرا از قبل با این زبان آشنا هستم. به علاوه سادگی و اکوسیستم کتابخانه ای گسترده آن به من کمک می کند سریعتر از سایر زبان های برنامه نویسی به نتیجه برسم.

در اینجا برخی از وظایفی که می توانید با پایتون به صورت خودکار انجام دهید به همراه چند مثال شخصی آورده شده است:

مدیریت فایل

شما می توانید کارهایی مانند سازماندهی فایل، تغییر نام، کپی و حذف را با استفاده از پایتون خودکار کنید.

من شخصاً از Obsidian به عنوان ابزار یادداشت برداری خود استفاده می کنم، جایی که تمام یادداشت های من در یک پوشه اختصاصی “صندوق ورودی” برای پردازش قرار می گیرند. سپس یک اسکریپت پایتون یادداشت ها را می خواند و هر کدام را بر اساس محتویاتشان به پوشه مناسب منتقل می کند.

اسکریپت فانتزی به نظر می رسد، اما بسیار ساده است، زیرا من قبلاً یک سیستم در محل دارم.

در اینجا اسکریپت من برای سازماندهی یادداشت ها به نظر می رسد:

import shutil
import os
import frontmatter

# List of frontmatter properties with folder destinations
frontmatter_to_dir = {
    'project': '1. Projects',
    'area': '2. Areas',
    'resource': '3. Resources',
}

def try_move_file(file, destination):
    print('- Moving file', file, "to", destination)
    try:
        shutil.move(file, destination)
    except Exception as err:
        print('-  - Project not found', err)


# Read all the files inside the "!inbox" directory
notes = os.listdir('!inbox')
for note in notes:
    note_path =  f"!inbox/{note}"
    # Read the file's frontmatter
    note_metadata = frontmatter.load(note_path)
    
    # Check if the file has a property to categorize this note,
    # for example: project, area, or resource
    for group, group_destination in frontmatter_to_dir.items():
        if group in note_metadata:
            # Try moving the file, it can be the case the project is
            # for example mispelled, in that case it won't do anything with the note
            try_move_file(note_path, f"{group_destination}/{note_metadata[group]}/{note}")

پردازش داده ها

پایتون در مورد پردازش داده ها در موقعیت منحصر به فردی قرار دارد. چه بخواهید متن، تصاویر، مجموعه داده های بزرگ را پردازش کنید یا محاسبات پیچیده را انجام دهید، کتابخانه های پایتون عالی برای همه موارد استفاده وجود دارد.

من معمولا اسکریپت های پایتون را برای درک اطلاعات ایجاد می کنم. برای مثال، من شرکتی را با چندین محصول SaaS اداره می‌کنم و اسکریپت‌های پایتون برای پردازش اظهارات و کمک به من در حسابداری دارم.

استخراج داده ها از فایل های متنی یا صفحات وب

شما می توانید از پایتون برای استخراج داده ها از وب سایت ها، تجزیه و تحلیل محتوای وب و جمع آوری اطلاعات برای ارسال خلاصه یا موارد دیگر استفاده کنید. من تا همین اواخر از این برای دانلود فیدهای RSS از وبلاگ ها و وب سایت های مورد علاقه خود و ایجاد یک خلاصه یک ایمیل استفاده می کردم که سپس برای خواندن جالب ترین مقالات از آن استفاده می کردم. من اکنون از Readwise Reader برای این منظور استفاده می کنم.

پیشنهاد می‌کنیم بخوانید:  جاوا اسکریپت: حذف یک ویژگی از یک ObjectAn شی در جاوا اسکریپت مجموعه ای از جفت های کلید-مقدار است. یکی از این جفت‌های کلید-مقدار، ویژگی شی نامیده می‌شود. هر دو کلید و مقادیر خصوصیات می توانند از هر نوع داده ای باشند - Number، String، Array، Object، و غیره. به عنوان مثال: const dog = { name: "Sandy", age: 3, emoji: "...

برای نشان دادن نحوه استخراج داده ها از صفحات وب با استفاده از پایتون، یک اسکریپت کوچک ایجاد کردم که از یک سایت بازدید می کند، HTML آن را تجزیه می کند و اطلاعات را از عناصر در DOM برمی گرداند. به ویژه، از یک روزنامه بازدید می کند، اطلاعاتی در مورد نرخ ارز برای جفت ARS/USD روز پیدا می کند و آن را روی صفحه چاپ می کند. فیلمنامه عالی برای کسانی که در آرژانتین زندگی می کنند.

import requests
from bs4 import BeautifulSoup

# Load the newspapaer website to scrap information about the current exchange rate for USD/ARS
URL = 'https://www.lanacion.com.ar/'
page = requests.get(URL)

# Parse the HTML data
soup = BeautifulSoup(page.content, "html.parser")
# Use select to find an element in the DOM
# In our case, we need a span inside a link with a specific title
span = soup.select('a[title="Dólar blue"] span')[0]
price = span.get_text()
# In a real scenario, instead of simply printing the price,
# I'd for example, email me the results or do some other processing
print(price) # e.g. $930,00

ارسال ایمیل

خبرنامه من اینگونه شروع شد: ارسال ایمیل برای مشترکین از طریق اسکریپت پایتون. اکنون، این مقیاس به خوبی انجام نمی‌شود، زیرا من ویژگی‌های جذاب‌تری را می‌خواستم، و به ConvertKit رفتم – اما اسکریپت Python برای اینکه یک راه‌حل رایگان و در مقیاس کوچکتر باشد، خوب بود.

ارسال ایمیل نیاز به دسترسی به سرور SMTP یا سرویس مشابه دارد، در مورد من از یک API اختصاصی برای ارسال آن‌ها استفاده می‌کردم، Amazon SES، زیرا وقتی صحبت از ارسال ایمیل به صورت انبوه به میان می‌آید، اقدامات خاصی وجود دارد که می‌خواهید انجام دهید تا آسیبی به آن وارد نشود. امتیاز دامنه شما، یا ایمیل های شما در پوشه اسپم قرار می گیرند.

در اینجا نحوه انجام این کار من است:

import boto3
import json

# All email addresses where store in s3
s3_bucket=""
# Provide the path to your file in the S3 bucket
s3_key = 'mail_list/addresses.txt'

s3_client = boto3.client('s3')
# Retrieve the email ids from the file
s3_object = s3_client.get_object(Bucket=s3_bucket, Key=s3_key)
email_ids = s3_object['Body'].read().decode('utf-8').split('\n')

# Send email for each email ID
ses_client = boto3.client('ses')
for email_id in email_ids:
	email_id = email_id.strip() # Remove leading/trailing whitespace
	
	# Perform email sending operations using SES client
	response = ses_client.send_email(
		Source="<FromAddress>",
		Destination={'ToAddresses': [email_id]},
		Message={
			'Subject': {'Data': 'Your Subject'},
			'Body': {'Text': {'Data': 'Your Email Body'}}
		}
	)

print(f"Email sent to {email_id}. Message ID: {response['MessageId']}")

برنامه های کاربردی وب و API ها

درست است – شما نمی توانید توسعه وب را فقط با پایتون انجام دهید. شما همچنان به HTML، CSS و جاوا اسکریپت نیاز دارید. اما وقتی صحبت از ساخت بک‌اند برای برنامه‌های وب می‌شود، پایتون یک گزینه فوق‌العاده است.

به لطف فریمورک های محبوب پایتون مانند جنگو، فلاسک، و FastAPI، شروع ساختن برنامه های کاربردی وب و API های خود بسیار آسان است.

در اکثر محصولات و برنامه‌هایی که می‌سازم، از ترکیبی از NextJS برای فرانت‌اند استفاده می‌کنم که توسط یک بک‌اند پایتون با استفاده از FastAPI پشتیبانی می‌شود، و این یک ترکیب قاتل است.

اما من در انتخاب پایتون برای ساخت بک‌اندهای وب تنها نیستم. شرکت هایی مانند مایکروسافت، اینستاگرام، پینترست و واشنگتن پست از پایتون برای ارائه خدمات به میلیون ها کاربر استفاده می کنند.

تجزیه و تحلیل داده ها / علم داده / هوش مصنوعی

پایتون پیشرو غیرقابل انکار در علم داده، هوش مصنوعی و یادگیری ماشین است. این تا حدی به لطف اکوسیستم گسترده آن از کتابخانه های منبع باز، مانند Pandas، Numpy، Tensorflow و Python در اکسل است. این جعبه ابزار گسترده به شما این امکان را می دهد که تقریباً با هر چالشی در این حوزه ها مقابله کنید.

پیشنهاد می‌کنیم بخوانید:  مقایسه Datetimes در پایتون با و بدون Timezones

آیا تحلیل های آماری پیچیده ای انجام می دهید؟ مشکلی نیست، یک کتابخانه برای آن وجود دارد. آیا مشتاق استفاده از مدرن ترین مدل های یادگیری ماشینی هستید؟ پایتون شما را پوشش داده است! آیا به یک شبکه عصبی پیچیده نیاز دارید؟ البته، شما می توانید این کار را انجام دهید!

اکوسیستم وسیع کتابخانه‌های پایتون به شما امکان می‌دهد با کتابخانه‌هایی که آماده تولید، سریع و کارآمد هستند و دارای APIهای باکیفیت هستند، آنچه را که نیاز دارید به سرعت بسازید.

در اینجا چند نمونه از کاربردهای مرتبط پایتون برای علم داده و هوش مصنوعی آورده شده است:

  • تحلیل سری های زمانی
  • تجسم داده ها
  • پیش بینی فروش
  • پردازش زبان
  • تحلیل احساسات
  • سیستم های پیشنهادی (مانند موسیقی، ویدئو و غیره)
  • طبقه بندی
  • بینایی کامپیوتر
  • ماشین های خودران
  • و خیلی بیشتر…

تست برنامه

سینتکس کاربرپسند و خوانایی پایتون آن را به انتخابی عالی برای آزمایش کنندگان QA در تمام سطوح مهارت تبدیل کرده است. ساختار ساده و سازماندهی کد واضح آن، نمونه سازی سریع و اجرای اسکریپت های آزمایشی را تسهیل می کند.

باز هم، به لطف اکوسیستم غنی پایتون با کتابخانه هایی مانند Playwright و Selenium است که پایتون یک گزینه عالی برای این دسته است.

برای برنامه های کاربردی وب، مهندسان QA اسکریپت های آزمایشی را می نویسند که برنامه را در یک مرورگر بدون هد، معمولاً یک محیط آزمایشی یا QA بارگذاری می کند و یک سری اعتبارسنجی را برای تعیین اینکه برنامه به درستی کار می کند انجام می دهد.

برای مثال، اگر می‌خواهید صفحه فهرست کاربر را آزمایش کنید، می‌توانید صفحه را بارگیری کنید، و با جستجوی عناصر DOM، می‌توانید تأیید کنید که برنامه به طور مؤثر نتایج را ارائه می‌کند. حتی بیشتر از این، می‌توانید ضربه‌های صفحه کلید، کلیک‌ها، فرم‌های کامل و موارد دیگر را با این ابزار شبیه‌سازی کنید.

در اینجا همان اسکریپت است که وب سایت python.org را بارگیری می کند، جستجو را انجام می دهد و با مقایسه صفحه به دست آمده با No results found پیام

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

# Set the driver to use Firefox, can also be Chrome, IE, and Remote
driver = webdriver.Firefox()
# Load the target website
driver.get("http://www.python.org")
# Validate that the page loaded by comparing the page title
assert "Python" in driver.title
# Find the search input element by name
elem = driver.find_element(By.NAME, "q")
# Empty it
elem.clear()
# Type `pycon`
elem.send_keys("pycon")
# Press an enter to trigger the search form
elem.send_keys(Keys.RETURN)
# Validate that the text `No results found.` is not present in the page
assert "No results found." not in driver.page_source
# Close the browser
driver.close()

نتیجه

تطبیق پذیری و اکوسیستم کتابخانه ای گسترده پایتون آن را به گزینه ای عالی برای پروژه های مختلف تبدیل کرده است. چه نیاز به خودکارسازی وظایف، پردازش داده‌ها، ساخت برنامه‌های کاربردی وب و APIها، انجام تجزیه و تحلیل داده‌ها و هوش مصنوعی یا انجام آزمایش برنامه‌ها، پایتون شما را پوشش می‌دهد.

سادگی، خوانایی و کتابخانه های قدرتمند آن به شما امکان می دهد تا به سرعت و کارآمد به نتایج برسید. بنابراین، دفعه بعد که یک زبان برنامه نویسی را برای پروژه خود در نظر می گیرید، نقاط قوت پایتون را در این زمینه ها در نظر بگیرید.

با تشکر برای خواندن!

میتونی دنبال من بیای (@bajcmartinez) همراه با @jesstemporal در Twitter/X برای کسب اطلاعات بیشتر در مورد پایتون و نحوه ساخت برنامه های کاربردی پایتون امن. ما حامیان توسعه‌دهندگان در Auth0 by Okta هستیم و مرتباً محتوا و جریان‌های زنده درباره Python ارسال می‌کنیم.