পাইথন স্ক্রিপ্টস সংগ্রহ (Automation Scripts)

প্র্যাকটিস প্রোজেক্টস - পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

431

Python ব্যবহার করে স্বয়ংক্রিয় বিভিন্ন কাজ সহজেই করা যায়। এখানে কিছু Python অটোমেশন স্ক্রিপ্ট এর উদাহরণ দেয়া হলো, যা দৈনন্দিন কাজগুলোকে দ্রুত ও কার্যকরীভাবে সম্পন্ন করতে সাহায্য করবে।


১. ফাইল অর্গানাইজার

এই স্ক্রিপ্টটি একটি নির্দিষ্ট ফোল্ডারের ফাইলগুলোকে ফাইল টাইপের ভিত্তিতে আলাদা ফোল্ডারে সরিয়ে রাখে।

import os
import shutil

def organize_files(folder_path):
    for file_name in os.listdir(folder_path):
        file_path = os.path.join(folder_path, file_name)
        if os.path.isfile(file_path):
            file_extension = file_name.split('.')[-1]
            target_folder = os.path.join(folder_path, file_extension)

            if not os.path.exists(target_folder):
                os.makedirs(target_folder)
            
            shutil.move(file_path, target_folder)

organize_files('/path/to/your/folder')

২. ইমেজ রিসাইজার

এই স্ক্রিপ্টটি একটি ফোল্ডারের সমস্ত ইমেজকে নির্দিষ্ট রেজোলিউশনে রিসাইজ করে সংরক্ষণ করবে।

from PIL import Image
import os

def resize_images(folder_path, size=(800, 800)):
    for file_name in os.listdir(folder_path):
        if file_name.endswith(('jpg', 'jpeg', 'png')):
            img_path = os.path.join(folder_path, file_name)
            img = Image.open(img_path)
            img = img.resize(size)
            img.save(img_path)

resize_images('/path/to/image/folder', size=(800, 800))

৩. ওয়েব স্ক্র্যাপার (নিউজ হেডলাইন সংগ্রহ)

এই স্ক্রিপ্টটি নির্দিষ্ট নিউজ ওয়েবসাইট থেকে সংবাদ শিরোনাম স্ক্র্যাপ করে।

import requests
from bs4 import BeautifulSoup

def get_news_headlines(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    headlines = soup.find_all('h3')  # assuming headlines are in <h3> tags

    for headline in headlines:
        print(headline.get_text(strip=True))

get_news_headlines('https://www.bbc.com/news')

৪. ইমেল স্বয়ংক্রিয় প্রেরণ

Python দিয়ে স্বয়ংক্রিয়ভাবে ইমেল প্রেরণ করতে SMTP ব্যবহার করা যায়।

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

def send_email(sender, password, recipient, subject, message):
    msg = MIMEMultipart()
    msg['From'] = sender
    msg['To'] = recipient
    msg['Subject'] = subject

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

    try:
        with smtplib.SMTP('smtp.gmail.com', 587) as server:
            server.starttls()
            server.login(sender, password)
            server.send_message(msg)
            print("Email sent successfully!")
    except Exception as e:
        print(f"Failed to send email: {e}")

send_email('your_email@gmail.com', 'your_password', 'recipient_email@gmail.com', 'Subject', 'Hello, this is an automated email.')

৫. পিডিএফ মার্জার

একাধিক পিডিএফ ফাইলকে একটি পিডিএফ ফাইলে মার্জ করতে এই স্ক্রিপ্টটি ব্যবহার করা যায়।

from PyPDF2 import PdfMerger

def merge_pdfs(pdf_list, output_file):
    merger = PdfMerger()
    for pdf in pdf_list:
        merger.append(pdf)
    merger.write(output_file)
    merger.close()

pdf_files = ['file1.pdf', 'file2.pdf', 'file3.pdf']
merge_pdfs(pdf_files, 'merged_output.pdf')

৬. ওয়েবসাইট মনিটরিং স্ক্রিপ্ট

ওয়েবসাইটের স্ট্যাটাস মনিটর করতে এই স্ক্রিপ্টটি ব্যবহার করা যায়।

import requests
import time

def monitor_website(url, interval=60):
    while True:
        try:
            response = requests.get(url)
            if response.status_code == 200:
                print(f"{url} is UP")
            else:
                print(f"{url} is DOWN with status code: {response.status_code}")
        except requests.exceptions.RequestException as e:
            print(f"{url} is DOWN: {e}")
        time.sleep(interval)

monitor_website('https://www.google.com', interval=300)  # 5 minutes interval

৭. ফোল্ডারে খালি ফাইল খোঁজার স্ক্রিপ্ট

একটি নির্দিষ্ট ফোল্ডারে খালি ফাইল খুঁজে বের করতে এই স্ক্রিপ্টটি ব্যবহার করা যেতে পারে।

import os

def find_empty_files(folder_path):
    empty_files = []
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            if os.path.getsize(file_path) == 0:
                empty_files.append(file_path)
    return empty_files

empty_files = find_empty_files('/path/to/folder')
print("Empty files:", empty_files)

৮. টেক্সট থেকে স্পিচে কনভার্টার

Python-এর pyttsx3 লাইব্রেরি ব্যবহার করে টেক্সট থেকে স্পিচে রূপান্তর করা যায়।

import pyttsx3

def text_to_speech(text):
    engine = pyttsx3.init()
    engine.say(text)
    engine.runAndWait()

text_to_speech("Hello, this is a text to speech example.")

pyttsx3 লাইব্রেরি ইনস্টল করতে:

pip install pyttsx3

৯. ডুপ্লিকেট ফাইল খুঁজে বের করার স্ক্রিপ্ট

এই স্ক্রিপ্টটি ফোল্ডারে থাকা ডুপ্লিকেট ফাইল চিহ্নিত করতে সাহায্য করবে।

import os
import hashlib

def hash_file(file_path):
    hasher = hashlib.md5()
    with open(file_path, 'rb') as file:
        buf = file.read()
        hasher.update(buf)
    return hasher.hexdigest()

def find_duplicates(folder_path):
    hashes = {}
    duplicates = []

    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            file_hash = hash_file(file_path)
            if file_hash in hashes:
                duplicates.append(file_path)
            else:
                hashes[file_hash] = file_path

    return duplicates

duplicates = find_duplicates('/path/to/folder')
print("Duplicate files:", duplicates)

১০. ইউটিউব ভিডিও ডাউনলোডার

Python এর pytube লাইব্রেরি ব্যবহার করে ইউটিউব থেকে ভিডিও ডাউনলোড করা যায়।\

from pytube import YouTube

def download_youtube_video(video_url, path):
    yt = YouTube(video_url)
    ys = yt.streams.get_highest_resolution()
    ys.download(path)
    print(f"Downloaded: {yt.title}")

download_youtube_video('https://www.youtube.com/watch?v=dQw4w9WgXcQ', '/path/to/download/folder')

pytube লাইব্রেরি ইনস্টল করতে:

pip install pytube

উপসংহার

এই স্ক্রিপ্টগুলো দৈনন্দিন কাজগুলিকে সহজে, দ্রুত এবং কার্যকরীভাবে সম্পন্ন করতে সাহায্য করবে। এগুলো ব্যবহার করে আপনি নিজে থেকে বিভিন্ন ধরণের অ্যাপ্লিকেশন এবং অটোমেশন টুল তৈরি করতে পারেন। চাইলে এই স্ক্রিপ্টগুলিতে আরও ফিচার যুক্ত করে বিভিন্ন ধরনের কাজ আরও সহজ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...