FA-TOOLS — Header Component

کدهای آماده پایتون برای اتوماسیون کارهای روزانه

سلام رفیق برنامه‌نویس! اگه مثل من از کارهای تکراری و وقت‌گیر روزمره خسته شدی، پایتون اومده که نجاتت بده. این زبان برنامه‌نویسی قدرتمند، مثل یه دستیار همه فن حریفه که می‌تونه ده‌ها ساعت از وقتت رو آزاد کنه تا به کارهای مهم‌تر برسی یا یه چرت حسابی بزنی! تو این مقاله قراره با هم بریم سراغ یه سری کدهای آماده و کاربردی که می‌تونی همین الان برداری و تو پروژه‌های خودت یا برای اتوماسیون کارهای شخصی استفاده کنی. اگه دنبال ابزارهای خفن دیگه برای تسریع کارت هستی، یه سر به فروشگاه ابزارهای ما بزن که کلی اسنیپت و کد آماده برات داریم، مخصوصاً تو بخش کدهای پایتون که حسابی دستتو باز می‌ذاره. تازه می‌تونی با شماره 09202232789 هم با ما در تماس باشی!

نقشه راه اتوماسیون با پایتون در یک نگاه! 🚀

  • 📁 اتوماسیون فایل و پوشه: مرتب‌سازی، تغییر نام، کپی و انتقال هوشمند.
  • 🌐 اتوماسیون وب: جمع‌آوری داده (وب‌اسکرپینگ) و تعامل خودکار با سایت‌ها.
  • 📧 مدیریت ایمیل: ارسال پیام‌های زمان‌بندی شده و فیلتر کردن هوشمند.
  • وظایف زمان‌بندی شده: اجرای خودکار اسکریپت‌ها در زمان‌های مشخص.
  • 📊 کار با اکسل و CSV: خواندن، ویرایش و گزارش‌گیری خودکار از داده‌ها.
  • 💡 نکات طلایی و عیب‌یابی: بهترین شیوه‌ها و راه‌حل مشکلات رایج.

چرا پایتون بهترین رفیق شما برای اتوماسیونه؟

کدهای آماده پایتون برای اتوماسیون کارهای روزانه — تصویر 1

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

قبل از شروع: ابزارهایی که نیاز دارید

کدهای آماده پایتون برای اتوماسیون کارهای روزانه — تصویر 2

برای شروع اتوماسیون با پایتون، به چند تا چیز اولیه نیاز داری:

  • نصب پایتون: از سایت رسمی python.org آخرین نسخه پایدار رو دانلود و نصب کن. حتماً گزینه “Add Python to PATH” رو تیک بزن.
  • یک ویرایشگر کد (IDE): Visual Studio Code، PyCharm یا حتی Sublime Text گزینه‌های عالی هستن.
  • کتابخانه‌های لازم: بسته به کاری که می‌خوای انجام بدی، باید کتابخانه‌های مربوطه رو با `pip install` نصب کنی.

کدهای پایتون برای اتوماسیون فایل‌ها و پوشه‌ها

کدهای آماده پایتون برای اتوماسیون کارهای روزانه — تصویر 3

مدیریت فایل‌ها و پوشه‌ها یکی از رایج‌ترین کارهای تکراریه. پایتون با ماژول‌های `os` و `shutil` این کار رو برات مثل آب خوردن می‌کنه. اگه دوست داری کدای بیشتری ببینی، به بخش اسنیپت‌های پایتون ما سر بزن.

مرتب‌سازی فایل‌ها بر اساس نوع

فرض کن یه پوشه پر از فایل‌های مختلف داری و می‌خوای همه‌شون رو بر اساس نوع (عکس، ویدئو، سند) مرتب کنی:


import os
import shutil

def organize_files(source_dir):
    """ فایل‌ها را بر اساس پسوند به پوشه‌های جداگانه مرتب می‌کند. """
    for filename in os.listdir(source_dir):
        if os.path.isfile(os.path.join(source_dir, filename)):
            file_extension = filename.split('.')[-1].lower()
            if file_extension:
                destination_dir = os.path.join(source_dir, file_extension + '_files')
                os.makedirs(destination_dir, exist_ok=True)
                shutil.move(os.path.join(source_dir, filename), destination_dir)
                print(f"فایل {filename} به {destination_dir} منتقل شد.")

# مثال استفاده:
# source_folder = "D:/MyDownloads"  # مسیر پوشه دانلودهای شما
# organize_files(source_folder)
    

تغییر نام دسته‌ای فایل‌ها

گاهی اوقات باید تعداد زیادی فایل رو با یه الگوی خاص تغییر نام بدی. این اسکریپت می‌تونه این کار رو برات انجام بده:


import os

def rename_files_in_bulk(directory, old_text, new_text):
    """
    نام فایل‌ها را در یک دایرکتوری مشخص به صورت دسته‌ای تغییر می‌دهد.
    old_text: متنی که باید جایگزین شود.
    new_text: متن جدید.
    """
    for filename in os.listdir(directory):
        if old_text in filename:
            new_filename = filename.replace(old_text, new_text)
            old_filepath = os.path.join(directory, filename)
            new_filepath = os.path.join(directory, new_filename)
            os.rename(old_filepath, new_filepath)
            print(f"نام {filename} به {new_filename} تغییر یافت.")

# مثال استفاده:
# target_dir = "D:/MyPhotos"
# rename_files_in_bulk(target_dir, "IMG_", "Vacation_")
    

اتوماسیون وب: از جمع‌آوری داده تا گزارش‌گیری

وب‌اسکرپینگ (Web Scraping) و اتوماسیون تعامل با وب‌سایت‌ها از کارهاییه که پایتون توش فوق‌العاده عمل می‌کنه. برای این کار معمولاً از کتابخانه‌های `requests` برای دریافت محتوای صفحات و `BeautifulSoup` برای تحلیل HTML استفاده می‌کنیم. برای دیدن کلی کدهای آماده و اسنیپت‌های دیگه، حتماً یه نگاه به بخش اسنیپت‌های ما بنداز.

جمع‌آوری عنوان و لینک از یک صفحه وب

فرض کن می‌خوای عنوان تمام لینک‌های یه صفحه وب رو استخراج کنی. این کد ساده این کار رو برات انجام میده:


import requests
from bs4 import BeautifulSoup

def scrape_links(url):
    """ عنوان و URL تمام لینک‌های موجود در یک صفحه را استخراج می‌کند. """
    try:
        response = requests.get(url)
        response.raise_for_status() # برای بررسی خطاهای HTTP
        soup = BeautifulSoup(response.text, 'html.parser')
        
        links_data = []
        for link in soup.find_all('a', href=True):
            text = link.get_text(strip=True)
            href = link['href']
            if text and href: # فقط لینک‌های با متن و آدرس معتبر
                links_data.append({'text': text, 'url': href})
        return links_data
    except requests.exceptions.RequestException as e:
        print(f"خطا در درخواست به URL: {e}")
        return []

# مثال استفاده:
# target_url = "https://fa-tools.ir/"
# extracted_links = scrape_links(target_url)
# for link in extracted_links:
#     print(f"عنوان: {link['text']}, آدرس: {link['url']}")
    

مدیریت ایمیل‌ها با پایتون: خداحافظی با صندوق ورودی شلوغ

ارسال ایمیل‌های انبوه، گزارش‌های هفتگی یا حتی یادآوری‌های خودکار؟ پایتون برای این کار هم راه‌حل داره. با ماژول‌های `smtplib` و `email` می‌تونی ایمیل‌ها رو به راحتی مدیریت کنی. فقط یادت باشه برای استفاده از این امکانات، ممکنه نیاز به تنظیمات خاصی تو اکانت ایمیلت داشته باشی (مثل فعال کردن “Less secure app access” در Gmail یا استفاده از App Password).

ارسال ایمیل‌های خودکار

این کد یه نمونه ساده از ارسال ایمیل با پایتونه:


import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_automated_email(sender_email, sender_password, receiver_email, subject, body):
    """ ایمیلی را به صورت خودکار ارسال می‌کند. """
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject

    msg.attach(MIMEText(body, 'plain'))

    try:
        server = smtplib.SMTP_SSL('smtp.gmail.com', 465) # برای جیمیل
        server.login(sender_email, sender_password)
        server.send_message(msg)
        server.quit()
        print("ایمیل با موفقیت ارسال شد!")
    except Exception as e:
        print(f"خطا در ارسال ایمیل: {e}")

# مثال استفاده (اطلاعات حساس را مستقیماً در کد نگذارید!)
# my_email = "your_email@gmail.com"
# my_password = "your_app_password" # یا رمز عبور عادی اگر تنظیمات امنیتی را دستکاری کرده‌اید
# recipient_email = "recipient@example.com"
# email_subject = "گزارش روزانه اتوماسیون"
# email_body = "سلام، گزارش کارهای اتوماسیون امروز ضمیمه شده است."
# send_automated_email(my_email, my_password, recipient_email, email_subject, email_body)
    

اتوماسیون وظایف زمان‌بندی شده: پایتون، ساعت شماست!

اجرای خودکار اسکریپت‌ها در زمان‌های مشخص، از کارهای کلیدیه که بهره‌وری رو به شدت بالا می‌بره. پایتون با کتابخانه‌هایی مثل `schedule` این کار رو ساده می‌کنه. البته می‌تونی از ابزارهای سیستم عامل مثل Cron Job در لینوکس یا Task Scheduler در ویندوز هم برای زمان‌بندی اسکریپت‌های پایتونت استفاده کنی.

اجرای یک تابع در زمان مشخص

با کتابخانه `schedule` می‌تونی کارهات رو برای اجرا در زمان‌های خاص یا با فواصل زمانی منظم، برنامه‌ریزی کنی:


import schedule
import time

def job():
    """ تابعی که قرار است زمان‌بندی شود. """
    print("من دارم کار می‌کنم...! ساعت:", time.ctime())

# هر 10 ثانیه یکبار اجرا شود
# schedule.every(10).seconds.do(job)

# هر 5 دقیقه یکبار اجرا شود
# schedule.every(5).minutes.do(job)

# هر روز در ساعت 10:30 صبح اجرا شود
# schedule.every().day.at("10:30").do(job)

# هر دوشنبه ساعت 13:15 اجرا شود
# schedule.every().monday.at("13:15").do(job)

# یک کار خاص را برای اجرا در یک زمان مشخص برنامه‌ریزی می‌کنیم
# schedule.every(3).seconds.do(job) # مثلا هر 3 ثانیه یکبار

# while True:
#    schedule.run_pending()
#    time.sleep(1) # هر 1 ثانیه بررسی می‌کند که کاری برای اجرا هست یا نه.
    

پایتون برای کار با اکسل و CSV: داده‌ها رو رام کنید!

مدیریت داده‌ها تو فایل‌های اکسل و CSV یکی از پردردسرترین کارهاییه که می‌تونیم اتوماتیکش کنیم. پایتون با کتابخانه فوق‌العاده `pandas` این کار رو برات خیلی راحت می‌کنه. `pandas` ابزارهای قدرتمندی برای خواندن، ویرایش، تحلیل و نوشتن داده‌ها تو فرمت‌های مختلف (از جمله اکسل و CSV) ارائه میده.

خواندن، ویرایش و ذخیره فایل اکسل/CSV

تصور کن یه فایل اکسل با اطلاعات مشتریان داری و می‌خوای سن اون‌ها رو بر اساس سال تولد بهش اضافه کنی:


import pandas as pd
import datetime

def process_excel_data(file_path):
    """
    فایل اکسل را می‌خواند، ستون 'سال تولد' را پردازش کرده
    و ستون 'سن' را اضافه می‌کند، سپس فایل جدید را ذخیره می‌کند.
    """
    try:
        df = pd.read_excel(file_path) # برای CSV از pd.read_csv استفاده کنید

        # فرض می‌کنیم ستونی به نام 'سال تولد' داریم
        if 'سال تولد' in df.columns:
            current_year = datetime.datetime.now().year
            df['سن'] = current_year - df['سال تولد']
            print("ستون 'سن' با موفقیت اضافه شد.")
        else:
            print("ستون 'سال تولد' یافت نشد.")

        # ذخیره فایل اکسل جدید
        output_file = file_path.replace(".xlsx", "_processed.xlsx")
        df.to_excel(output_file, index=False)
        print(f"فایل پردازش شده در {output_file} ذخیره شد.")
        return df
    except FileNotFoundError:
        print(f"خطا: فایل {file_path} یافت نشد.")
        return None
    except Exception as e:
        print(f"خطایی رخ داد: {e}")
        return None

# مثال استفاده:
# excel_file = "D:/MyData/customers.xlsx"
# processed_df = process_excel_data(excel_file)
# if processed_df is not None:
#     print(processed_df.head())
    

چند نکته طلایی برای اتوماسیون موفق

برای اینکه کدهای اتوماسیونت مثل ساعت کار کنن و وسط راه به مشکل نخوری، این نکات رو یادت باشه:

  • مدیریت خطا (Error Handling): همیشه کدهای مهمت رو داخل بلوک‌های `try-except` قرار بده تا اگه خطایی پیش اومد، برنامه کرش نکنه و بتونی مشکل رو ردیابی کنی.
  • لاگ‌برداری (Logging): از ماژول `logging` پایتون استفاده کن تا مراحل اجرای برنامه و هر خطایی رو تو یه فایل ذخیره کنی. اینطوری اگه برنامه نصف شب هم اجرا شد، می‌تونی صبح بری ببینی چی شده.
  • مسیرهای مطلق (Absolute Paths): برای کار با فایل‌ها و پوشه‌ها، بهتره از مسیرهای مطلق استفاده کنی تا اسکریپتت تو هر جایی که اجرا بشه، بتونه فایل‌ها رو پیدا کنه.
  • تست، تست، تست: قبل از اینکه یه اسکریپت رو به صورت کامل اتوماتیک کنی، حتماً بارها و بارها تستش کن تا مطمئن بشی همه حالات ممکن رو پوشش میده و درست کار می‌کنه.
  • کامنتهای مناسب: کدهات رو با کامنت‌های واضح و مفید توضیح بده تا اگه بعداً خودت یا کس دیگه‌ای بهش برگشتی، بفهمی قضیه از چه قراره.

عیب‌یابی سریع: مشکلات رایج و راه‌حل‌ها

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

مشکل رایج راه حل سریع
`ModuleNotFoundError` این یعنی کتابخانه مورد نظر نصب نشده. با دستور `pip install ` اون رو نصب کن. (مثال: `pip install pandas`)
`FileNotFoundError` مسیر فایل یا پوشه‌ای که دادی اشتباهه یا فایل وجود نداره. مسیر رو دوباره بررسی کن و از مسیرهای مطلق استفاده کن.
`PermissionError` اسکریپت اجازه دسترسی به فایل یا پوشه رو نداره. برنامه رو با دسترسی ادمین (Admin) اجرا کن یا از صاحب فایل/پوشه مجوز بگیر.
مشکلات Encoding (کاراکترهای نامفهوم) اغلب تو باز کردن یا نوشتن فایل‌ها پیش میاد. هنگام باز کردن فایل، `encoding=’utf-8’` رو اضافه کن. (مثال: `open(‘file.txt’, ‘r’, encoding=’utf-8′)`)
اسکریپت اجرا میشه ولی هیچ کاری انجام نمیده اول logها رو چک کن. اگه لاگی نداری، پرینت استیتمنت‌های موقتی (مثل `print(“اینجا کار می‌کنه!”)`) تو نقاط مختلف کد بزار تا ببینی کدوم قسمت اجرا نمیشه.

پرسش‌های متداول (FAQ)

آیا پایتون برای همه کارهای اتوماسیون مناسب است؟

پایتون برای طیف وسیعی از کارهای اتوماسیون، از مدیریت فایل‌ها و پوشه‌ها گرفته تا وب‌اسکرپینگ، ارسال ایمیل، و کار با داده‌ها در اکسل، فوق‌العاده است. با این حال، برای اتوماسیون‌های سطح پایین سیستم عامل یا کارهایی که نیاز به تعامل مستقیم با سخت‌افزار بسیار خاص دارند، ممکن است زبان‌های دیگری مثل C++ مناسب‌تر باشند. اما برای اکثر کارهای روزمره، پایتون بهترین انتخابه.

چگونه می‌توانم کدهای پایتون خود را زمان‌بندی کنم تا هر روز اجرا شوند؟

برای زمان‌بندی کدهای پایتون می‌تونی از چند روش استفاده کنی:

  • کتابخانه `schedule`: همونطور که تو مقاله گفتیم، برای زمان‌بندی‌های داخلی پایتون عالیه (مثلاً هر چند دقیقه یا ساعت).
  • Cron Job (در لینوکس/macOS): یک ابزار سیستمی قدرتمند برای اجرای اسکریپت‌ها در زمان‌های مشخص.
  • Task Scheduler (در ویندوز): ابزاری مشابه Cron Job برای سیستم عامل ویندوز.

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

برای اتوماسیون وب، آیا Selenium بهتر است یا BeautifulSoup؟

این دو ابزار کاربردهای متفاوتی دارند:

  • BeautifulSoup (همراه با Requests): برای وب‌اسکرپینگ استاتیک عالیه. یعنی اگه فقط نیاز به جمع‌آوری اطلاعات از یک صفحه HTML دارید که نیازی به تعامل (کلیک، پر کردن فرم) نداره، این ترکیب سریع‌تر و سبک‌تره.
  • Selenium: برای اتوماسیون وب دینامیک و تعامل کامل با مرورگر (کلیک روی دکمه‌ها، پر کردن فرم‌ها، اسکرول کردن، کار با صفحات JavaScript محور) استفاده میشه. Selenium مرورگر واقعی رو شبیه‌سازی می‌کنه و کندتره اما برای کارهای پیچیده‌تر ضروریه.

انتخاب بین این دو به ماهیت کاری که می‌خواهید اتوماسیون کنید، محتوف است.

نتیجه‌گیری: با پایتون، زمان بخر!

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

پیشنهاد می‌کنم همین الان یکی از این اسکریپت‌ها رو انتخاب کنی، یکم تغییرش بدی و ببینی چطور یه کار خسته‌کننده رو به یه فرآیند اتوماتیک و بی‌دردسر تبدیل می‌کنه. با تمرین و کنجکاوی، خیلی زود متخصص اتوماسیون با پایتون میشی و کلی زمان اضافه برای خودت میخَری. موفق باشی!

اگه دنبال اسنیپت‌های دیگه، چه برای CSS، چه برای JavaScript، HTML یا حتی وردپرس هستی، به بخش کدهای آماده ما یه سر بزن؛ حتماً چیزی که به کارت بیاد پیدا می‌کنی!

Table of Contents

آخرین نوشته‌ها