21 Scripts Python Simples Qui Automatiseront Vos Tâches Quotidiennes

En tant que personne ayant passé plus d’une décennie dans le monde de la programmation, j’ai appris que l’automatisation des tâches répétitives peut faire gagner un temps et un effort considérables.

Python, avec sa syntaxe simple et ses bibliothèques puissantes, est l’un des meilleurs langages de programmation pour créer des scripts d’automatisation. Que vous soyez un programmeur ou une personne cherchant à faciliter les tâches quotidiennes, Python dispose d’outils qui peuvent vous aider.

Dans cet article, je vais partager 21 scripts Python que j’ai utilisés pour automatiser diverses tâches. Ces scripts sont parfaits pour quiconque souhaite gagner du temps et améliorer l’efficacité de sa routine de travail.

1. Renommer des fichiers en masse

Renommer des fichiers un par un peut être une tâche chronophage, mais avec Python, vous pouvez facilement automatiser cela en utilisant le module os.

Voici un script simple qui renomme plusieurs fichiers dans un dossier en fonction d’un modèle donné :

import os

def bulk_rename(folder_path, old_name_part, new_name_part):
    for filename in os.listdir(folder_path):
        if old_name_part in filename:
            new_filename = filename.replace(old_name_part, new_name_part)
            os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_filename))
            print(f"Renamed {filename} to {new_filename}")

folder = '/path/to/your/folder' bulk_rename(folder, 'old_part', 'new_part')

Ce script recherche les fichiers contenant old_name_part dans leurs noms et le remplace par new_name_part.

2. Sauvegarde automatique des fichiers

Nous savons tous à quel point il est important de sauvegarder régulièrement des fichiers, et cette tâche peut être facilement automatisée en utilisant le module shutil de Python.

Ce script copiera tous les fichiers d’un répertoire à un autre à des fins de sauvegarde :

import shutil
import os

def backup_files(src_dir, dest_dir):
    if not os.path.exists(dest_dir):
        os.makedirs(dest_dir)
    for file in os.listdir(src_dir):
        full_file_name = os.path.join(src_dir, file)
        if os.path.isfile(full_file_name):
            shutil.copy(full_file_name, dest_dir)
            print(f"Backed up {file} to {dest_dir}")

source = '/path/to/source/directory' destination = '/path/to/destination/directory' backup_files(source, destination)

Vous pouvez programmer ce script pour qu’il s’exécute quotidiennement en utilisant des outils de planification de tâches comme cron (Linux) ou Planificateur de tâches (Windows).

3. Téléchargement de fichiers depuis Internet

Si vous téléchargez fréquemment des fichiers depuis Internet, vous pouvez automatiser cette tâche en utilisant la bibliothèque aiohttp.

Voici un script simple pour télécharger des fichiers à partir d’URL :

import aiohttp
import asyncio
import aiofiles

async def download_file(url, filename):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            async with aiofiles.open(filename, 'wb') as file:
                await file.write(await response.read())
            print(f"Downloaded {filename}")

urls = {
    'https://example.com/file1.zip': 'file1.zip',
    'https://example.com/file2.zip': 'file2.zip'
}

async def download_all():
    tasks = [download_file(url, filename) for url, filename in urls.items()]
    await asyncio.gather(*tasks)

asyncio.run(download_all())

Ce script télécharge le fichier à partir de l’URL spécifiée et l’enregistre dans le dossier que vous avez spécifié.

4. Automatisation des rapports par email

Si vous devez envoyer des rapports par email régulièrement, vous pouvez l’automatiser en utilisant la bibliothèque smtplib, qui vous permet d’envoyer des emails facilement depuis un compte Gmail :

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

def send_email(subject, body, to_email):
    sender_email = '[email protected]'
    sender_password = 'yourpassword'
    receiver_email = to_email

    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))

    try:
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, msg.as_string())
        server.quit()
        print("Email sent successfully!")
    except Exception as e:
        print(f"Failed to send email: {e}")

subject = 'Monthly Report'
body = 'Here is the monthly report.'
send_email(subject, body, '[email protected]')

Ce script enverra un email simple avec un objet et un corps à un destinataire spécifié. Assurez-vous d’activer les applications moins sécurisées dans Gmail si vous utilisez cette méthode.

5. Planificateur de tâches (Automatisation des tâches)

La planification des tâches peut être effectuée facilement en utilisant la bibliothèque schedule, qui vous permet d’automatiser des tâches comme l’envoi d’un email ou l’exécution d’un script de sauvegarde à des moments spécifiques :

import schedule
import time

def job():
    print("Running scheduled task!")

# Schedule the task to run every day at 10:00 AM
schedule.every().day.at("10:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Ce script continuera à s’exécuter et déclenchera des tâches à l’heure spécifiée, dans ce cas, 10h00 chaque jour.

6. Collecte de données par web scraping

Utiliser aiohttp pour des requêtes HTTP asynchrones au lieu de la bibliothèque synchrone requests peut rendre le web scraping plus efficace.

Cet exemple récupère plusieurs pages en parallèle.

import aiohttp
import asyncio
from bs4 import BeautifulSoup

async def fetch(session, url):
    async with session.get(url) as response:
        return await response.text()

async def scrape(urls):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch(session, url) for url in urls]
        html_pages = await asyncio.gather(*tasks)
        for html in html_pages:
            soup = BeautifulSoup(html, 'html.parser')
            print(soup.title.string)

urls = ['https://example.com/page1', 'https://example.com/page2'] asyncio.run(scrape(urls))

7. Automatisation des publications sur les réseaux sociaux

Si vous gérez des comptes de réseaux sociaux, vous pouvez automatiser la publication en utilisant des bibliothèques comme Tweepy (pour Twitter) et Instagram-API (pour Instagram) qui vous permettent de publier automatiquement.

Voici un exemple utilisant la bibliothèque Tweepy pour publier un tweet :

import tweepy

def tweet(message):
    consumer_key = 'your_consumer_key'
    consumer_secret = 'your_consumer_secret'
    access_token = 'your_access_token'
    access_token_secret = 'your_access_token_secret'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)

    api = tweepy.API(auth)

    api.update_status(message)
    print("Tweet sent successfully!")

tweet("Hello, world!")

Ce script publie un tweet avec le message “Hello, world!” sur votre compte Twitter.

8. Automatisation de la génération de factures

Si vous générez des factures régulièrement, vous pouvez l’automatiser en utilisant des bibliothèques comme Fpdf, qui créera des factures PDF :

from fpdf import FPDF

def create_invoice(client_name, amount):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)
    pdf.cell(200, 10, txt="Invoice", ln=True, align='C')
    pdf.cell(200, 10, txt=f"Client: {client_name}", ln=True, align='L')
    pdf.cell(200, 10, txt=f"Amount: ${amount}", ln=True, align='L')
    pdf.output(f"{client_name}_invoice.pdf")
    print(f"Invoice for {client_name} created successfully!")

create_invoice('John Doe', 500)

Ce script crée une facture simple et l’enregistre en tant que PDF.

9. Surveillance de la disponibilité des sites web

Python peut être utilisé pour automatiser la surveillance de la disponibilité des sites web en utilisant la bibliothèque requests, qui peut vérifier périodiquement si un site web est en ligne ou non :

import requests
import time

def check_website(url):
    try:
        response = requests.get(url)
        if response.status_code == 200:
            print(f"Website {url} is up!")
        else:
            print(f"Website {url} returned a status code {response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"Error checking website {url}: {e}")

url = 'https://example.com' while True: check_website(url) time.sleep(3600) # Check every hour

Ce script vérifie si le site web est en ligne et imprime le code de statut.

10. Réponse automatique aux e-mails

Si vous recevez souvent des e-mails et souhaitez configurer une réponse automatique, utilisez les bibliothèques imaplib et smtplib pour répondre automatiquement aux e-mails :

import imaplib
import smtplib
from email.mime.text import MIMEText

def auto_reply():
    # Connect to email server
    mail = imaplib.IMAP4_SSL("imap.gmail.com")
    mail.login('[email protected]', 'yourpassword')
    mail.select('inbox')

    # Search for unread emails
    status, emails = mail.search(None, 'UNSEEN')

    if status == "OK":
        for email_id in emails[0].split():
            status, email_data = mail.fetch(email_id, '(RFC822)')
            email_msg = email_data[0][1].decode('utf-8')

            # Send auto-reply
            send_email("Auto-reply", "Thank you for your email. I'll get back to you soon.", '[email protected]')

def send_email(subject, body, to_email):
    sender_email = '[email protected]'
    sender_password = 'yourpassword'
    receiver_email = to_email

    msg = MIMEText(body)
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject

    with smtplib.SMTP_SSL('smtp.gmail.com', 465) as server:
        server.login(sender_email, sender_password)
        server.sendmail(sender_email, receiver_email, msg.as_string())

auto_reply()

Ce script répond automatiquement aux e-mails non lus avec un message prédéfini.

11. Nettoyage de fichiers

Python offre un moyen efficace d’automatiser le nettoyage des fichiers, en particulier pour supprimer ou déplacer des fichiers anciens afin de maintenir des répertoires organisés.

Voici un script simple qui supprime les fichiers de plus d’un certain nombre de jours en utilisant les modules os et time.

import aiofiles
import os
import asyncio
import time

async def clean_up(folder_path, days_old):
    now = time.time()
    cutoff_time = now - (days_old * 86400)
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        if os.path.getmtime(file_path) < cutoff_time:
            await aiofiles.os.remove(file_path)
            print(f"Deleted {filename}")

folder = '/path/to/your/folder'
asyncio.run(clean_up(folder, 30))

12. Génération Automatique de Mots de Passe

Créer des mots de passe forts et uniques est essentiel pour la sécurité, et Python peut aider à automatiser ce processus en utilisant le module random.

Voici un script simple qui génère des mots de passe aléatoires d’une longueur spécifiée, incorporant des lettres, des chiffres et des caractères spéciaux pour améliorer la sécurité.

import random
import asyncio
import string

async def generate_password(length=12):
    characters = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(random.choice(characters) for _ in range(length))
    return password

async def generate_multiple_passwords(n, length=12):
    tasks = [generate_password(length) for _ in range(n)]
    passwords = await asyncio.gather(*tasks)
    print(passwords)

asyncio.run(generate_multiple_passwords(5))

13. Suivi de Tâches/Rappel

Créer un système de suivi de tâches ou de rappels en Python peut être réalisé en utilisant les modules datetime et asyncio.

import asyncio
from datetime import datetime

async def task_reminder(task_name, interval):
    while True:
        print(f"Reminder: {task_name} - {datetime.now()}")
        await asyncio.sleep(interval)

async def main():
    await asyncio.gather(
        task_reminder("Drink Water", 7200),  # Remind every 2 hours
        task_reminder("Take a Break", 3600)  # Remind every 1 hour
    )

asyncio.run(main())

Ce script envoie un rappel concernant la tâche à un moment prévu.

14. Génération Automatique de Rapports Quotidiens

Automatisez les rapports quotidiens en utilisant Python pour collecter des données et les formater en rapport :

import datetime
import aiofiles
import asyncio

async def generate_report(data):
    today = datetime.date.today()
    filename = f"daily_report_{today}.txt"
    async with aiofiles.open(filename, 'w') as file:
        await file.write(f"Report for {today}\n")
        await file.write("\n".join(data))
    print(f"Report generated: {filename}")

data = ["Task 1: Completed", "Task 2: Pending", "Task 3: Completed"]
asyncio.run(generate_report(data))

15. Surveiller les Ressources Système

Si vous êtes administrateur système, vous pouvez utiliser Python pour surveiller les ressources de votre système comme l’utilisation du CPU et de la mémoire, avec l’aide de la bibliothèque psutil.

import psutil

def monitor_resources():
    cpu_usage = psutil.cpu_percent(interval=1)
    memory_usage = psutil.virtual_memory().percent
    print(f"CPU Usage: {cpu_usage}%")
    print(f"Memory Usage: {memory_usage}%")

monitor_resources()

16. Redimensionnement d’Images par Lots

Si vous devez redimensionner des images en masse, Python facilite cela avec la bibliothèque Pillow.

from PIL import Image
import os
import asyncio
from concurrent.futures import ProcessPoolExecutor

def resize_image(filename, width, height):
    img = Image.open(filename)
    img = img.resize((width, height))
    img.save(f"resized_{filename}")
    return f"Resized {filename}"

async def resize_images(folder_path, width, height):
    with ProcessPoolExecutor() as executor:
        loop = asyncio.get_event_loop()
        tasks = []
        for filename in os.listdir(folder_path):
            if filename.endswith('.jpg'):
                tasks.append(loop.run_in_executor(
                    executor, resize_image, os.path.join(folder_path, filename), width, height))
        results = await asyncio.gather(*tasks)
        print(results)

folder = '/path/to/your/images'
asyncio.run(resize_images(folder, 800, 600))

Ce script redimensionne toutes les images .jpg dans un dossier aux dimensions spécifiées.

17. Automatisation de la sauvegarde des données vers le cloud

L’automatisation des sauvegardes vers des services cloud comme Google Drive est rendue possible avec Python en utilisant des bibliothèques telles que pydrive.

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

def backup_to_google_drive(file_path):
    gauth = GoogleAuth()
    gauth.LocalWebserverAuth()
    drive = GoogleDrive(gauth)
    file = drive.CreateFile({'title': 'backup_file.txt'})
    file.Upload()
    print("Backup uploaded successfully!")

file = '/path/to/your/file.txt' backup_to_google_drive(file)

18. Création de rappels quotidiens

Définir des rappels quotidiens est facile avec le module time, qui vous rappellera de boire de l’eau toutes les 2 heures :

import time

def water_reminder():
    while True:
        print("Time to drink water!")
        time.sleep(7200)  # Remind every 2 hours

water_reminder()

19. Automatisation de la saisie de données dans Excel

Si vous entrez fréquemment des données dans Excel, Python peut aider à automatiser cette tâche avec la bibliothèque openpyxl :

from openpyxl import Workbook

def create_excel(data):
    wb = Workbook()
    ws = wb.active
    for row in data:
        ws.append(row)
    wb.save('data.xlsx')
    print("Excel file created successfully!")

data = [
    ["Name", "Age", "City"],
    ["John", 30, "New York"],
    ["Anna", 25, "London"],
]
create_excel(data)

20. Automatisation du nettoyage des données

Si vous travaillez avec de grands ensembles de données, Python peut automatiser les tâches de nettoyage des données, ce qui supprimera les lignes vides d’un fichier CSV :

import csv

def clean_csv(file_path):
    with open(file_path, 'r') as infile:
        reader = csv.reader(infile)
        rows = [row for row in reader if any(row)]
    
    with open(file_path, 'w', newline='') as outfile:
        writer = csv.writer(outfile)
        writer.writerows(rows)
    
    print("Empty rows removed from CSV")

file = '/path/to/your/data.csv' clean_csv(file)

21. Extraction de texte à partir d’images

Python peut être utilisé pour extraire du texte à partir d’images en utilisant la bibliothèque pytesseract, ce qui peut être utile lorsque vous devez numériser du contenu imprimé ou extraire du texte de documents numérisés.

from PIL import Image
import pytesseract

def extract_text_from_image(image_path):
    # Open the image file
    img = Image.open(image_path)
    
    # Use pytesseract to extract text
    text = pytesseract.image_to_string(img)
    
    return text

image_path = 'path_to_your_image.jpg'
extracted_text = extract_text_from_image(image_path)
print("Extracted Text:\n", extracted_text)
Conclusion

Ce ne sont là que quelques exemples de ce que Python peut faire pour automatiser vos tâches quotidiennes. Avec sa syntaxe simple et ses bibliothèques puissantes, Python peut gérer presque toutes les tâches que vous lui confiez.

Que vous gériez des fichiers, envoyiez des e-mails ou génériez des rapports, Python peut vous faire gagner du temps et améliorer votre productivité. Alors, commencez dès aujourd’hui avec l’automatisation Python et laissez-le s’occuper de vos tâches quotidiennes !

Source:
https://www.tecmint.com/python-automation-scripts/