7 Scripts Python étonnamment utiles que vous utiliserez chaque semaine

 7 Scripts Python étonnamment utiles que vous utiliserez chaque semaine


7 Scripts Python étonnamment utiles que vous utiliserez chaque semaine
Image de l’auteur | Idéogramme

# Introduction

Python Ce n’est pas uniquement pour la science des données, la création d’applications ou la fabrication de jeux. J’enseignais à mon frère cadet, Qasim, Python, et j’ai réalisé qu’il se connectait beaucoup plus lorsque je lui ai montré des scripts pratiques qui pouvaient automatiser les tâches ennuyeuses et répétitives que nous traitons souvent chaque semaine. Une chose que j’ai observée dans la vie, c’est qu’un tas de petites tâches improductives et longues peuvent sérieusement drainer votre énergie. Vous vous retrouvez avec peu de motivation ou de concentration pour les choses qui comptent réellement. Donc, je suis ici pour vous aider avec certaines des tâches les plus courantes que vous rencontrez presque chaque semaine et comment elles peuvent être automatisées avec Python facilement, vous économisant des tonnes de temps et d’énergie.

J’ai gardé les scripts propres et simples, mais vous pouvez y ajouter de la complexité selon vos besoins. Alors, commençons.

# 1. Organisateur de fichiers automatisé par extension

Pour être honnête, parfois lorsque je travaille, mon dossier de téléchargements devient un gâchis absolu. Je vais partager un simple script Python qui traversera les fichiers de votre répertoire cible et les organisera (par exemple, images, documents, vidéos) par extension en utilisant OS et fermer. Jetons un coup d’œil:

import os
import shutil
from pathlib import Path

# Folder to organize (e.g., Downloads)
base_folder = Path.home() / "Downloads"

# Define folders for each extension
folders = {
    "images": ("jpg", "png", "gif", "bmp"),
    "documents": ("txt", "pdf", "docx"),
    "archives": ("zip", "rar", "tar", "gz"),
    "audio": ("mp3", "wav"),
    # add more categories as needed
}

# Iterate over files in base_folder
for item in base_folder.iterdir():
    if item.is_file():
        ext = item.suffix.lower().lstrip('.')
        moved = False
        # Determine which category folder to use
        for folder, ext_list in folders.items():
            if ext in ext_list:
                dest_dir = base_folder / folder
                dest_dir.mkdir(exist_ok=True)
                item.rename(dest_dir / item.name)
                moved = True
                break
        # If extension didn’t match any category, move to "others"
        if not moved:
            dest_dir = base_folder / "others"
            dest_dir.mkdir(exist_ok=True)
            item.rename(dest_dir / item.name)

# 2. Moniteur de ressources système avec alerte

Si vous êtes quelqu’un comme moi qui exécute plusieurs onglets, applications et scripts ensemble, il est facile de perdre la trace des performances de votre système. Ce script, en utilisant le putil Bibliothèque, vous aide à surveiller votre CPU et votre utilisation de la RAM. Vous pouvez même définir des alertes si l’utilisation traverse un certain seuil.

import psutil
import time

CPU_LIMIT = 80  # in percentage
MEMORY_LIMIT = 80  # in percentage

while True:
    cpu = psutil.cpu_percent(interval=1)
    memory = psutil.virtual_memory().percent

    print(f"CPU: {cpu}%, Memory: {memory}%")

    if cpu > CPU_LIMIT:
        print("⚠️ CPU usage is high!")

    if memory > MEMORY_LIMIT:
        print("⚠️ Memory usage is high!")

    time.sleep(5)

Exécutez-le pendant un certain temps et vous commencerez à remarquer comment les choses augmentent lorsque vous modifiez des vidéos ou exécutez un script lourd.

# 3. Reporter par e-mail automatisé

Le courrier électronique mange bien plus de temps que nous ne le pensons. Qu’il s’agisse de répondre aux mises à jour, d’envoyer des rappels, de suivre ou simplement de garder les gens dans la boucle, nous passons souvent des heures chaque semaine à faire des choses qui peuvent (et devraient) être automatisées. Et si vous êtes comme moi, vous réfléchissez probablement à quoi écrire dans ces e-mails de mise à jour réguliers, finissez par tergiverser, puis vous précipiter plus tard. Ce script simple peut être vraiment utile, et voici comment vous pouvez le configurer:

import smtplib
from email.mime.text import MIMEText

sender = "youremail@example.com"
receiver = "receiver@example.com"
subject = "Daily Report"
body = "This is your automated email for today."

msg = MIMEText(body)
msg("Subject") = subject
msg("From") = sender
msg("To") = receiver

# For security, use environment variables or getpass instead of hardcoding.
password = "your_password" 

with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
    server.login("youremail@example.com", password)
    server.send_message(msg)

print("Email sent!")

⚠️ Heads Up: Si vous utilisez Gmail, assurez-vous que vous avez activé un accès d’application moins sécurisé ou configurez un mot de passe spécifique à l’application si vous avez activé 2FA.

# 4. Notifications de bureau

J’ai en fait commencé à utiliser ce script pour m’aider à m’en tenir au Technique de pomodoro (25 minutes de focus profonde suivis d’une pause de 5 minutes). Et honnêtement, cela a fait des merveilles pour mes niveaux de concentration et d’énergie tout au long de la journée. C’est génial si vous voulez quelque chose qui apparaît un petit rappel sur votre écran sans changer d’applications ou définir des alarmes. Vous pouvez l’utiliser pour quelque chose comme des rappels extensibles, des alertes d’hydratation, ou même pour vous rappeler d’arrêter le concours.
Depuis que je suis sur macOS, j’utilise le intégré osascrip Commande pour déclencher des notifications système natives. Mais si vous êtes sous Windows ou Linux, vous pouvez utiliser le pli bibliothèque pour des fonctionnalités similaires.

Voici comment je l’ai configuré pour mon propre flux de travail:

import time
import os

def notify(title, message):
    os.system(f'''
        osascript -e 'display notification "{message}" with title "{title}"'
    ''')

# Pomodoro session settings
work_duration = 25 * 60  # 25 minutes
break_duration = 5 * 60  # 5 minutes
cycles = 4  # Number of Pomodoro sessions

for i in range(cycles):
    # Work phase
    notify(f"Pomodoro {i + 1} - Focus Time", "Time to focus! Work for 25 minutes.")
    time.sleep(work_duration)

    # Break phase
    notify("Break Time", "Nice work! Take a 5-minute break.")
    time.sleep(break_duration)

# Final notification
notify("All Done!", "You’ve completed all your Pomodoros 🎉")

# 5. Générateur et gestionnaire de mots de passe

Si vous utilisez toujours le même mot de passe partout (veuillez ne pas le faire), c’est pour vous. Il génère un mot de passe sécurisé et le stocke en toute sécurité (vous pouvez également crypter la partie de stockage).

import random
import string

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

new_password = generate_password()
print("Generated Password:", new_password)

# Save to file (simple way)
with open("passwords.txt", "a") as file:
    file.write(f"MySite: {new_password}n")

Pour plus de sécurité, envisagez de chiffrer le fichier avec cryptographie ou le stocker dans un coffre-fort sécurisé comme clés.

# 6. Recherche de texte dans plusieurs fichiers

Lorsque je travaille sur du matériel d’écriture, j’ai généralement des tonnes d’idées brutes disséminées dans divers fichiers dans différents dossiers. Parfois, je me souviens avoir écrit une analogie brillante ou un extrait de code il y a des semaines … mais je n’ai aucune idée de l’endroit où je l’ai sauvé. Ce petit script m’a sauvé d’innombrables heures. Au lieu d’ouvrir manuellement chaque fichier pour rechercher une phrase comme «apprentissage automatique» ou «recherche de vecteur», je exécute simplement ce script Python et je le laisse tout scanner pour moi.

import os

search_dir = "your_directory"  # Replace with the path to your notes
search_term = "machine learning"

for root, dirs, files in os.walk(search_dir):
    for file in files:
        if file.endswith(".txt") or file.endswith(".md"):
            file_path = os.path.join(root, file)
            try:
                with open(file_path, "r", encoding="utf-8") as f:
                    content = f.read()
                    if search_term.lower() in content.lower():
                        print(f"✅ Found in: {file_path}")
            except Exception as e:
                print(f"❌ Skipped {file_path} (error reading file)")

Il s’agit d’une version simple qui fonctionne très bien pour les fichiers en texte brut. Depuis que je travaille aussi avec .docx, .pptxet .pdf Fichiers, j’utilise une version légèrement plus avancée qui prend également en charge ces formats. Vous pouvez facilement étendre ce script à l’aide de bibliothèques comme python-docx, python-pptxet pdflumber Pour en faire un mini moteur de recherche pour l’ensemble de votre espace de travail.

# 7. trouver des stages et des bourses sur Twitter

Twitter / X peut être une mine d’or si vous savez comment l’utiliser intelligemment. Lorsque je cherchais activement des bourses de maîtrise et de doctorat, j’ai réalisé que vous n’avez pas seulement besoin d’être qualifié, mais vous devez également être rapide et conscient. De nombreuses opportunités apparaissent sur Twitter (oui, sérieusement), mais ils disparaissent rapidement si vous ne regardez pas de près. Il existe deux grandes façons de le faire dans Python: en utilisant soit le snscrap Bibliothèque ou API officielle de Twitter. Si vous voulez plus de contrôle (comme le filtrage par la langue, à l’exclusion des retweets, etc.), vous pouvez utiliser l’API officielle de Twitter V2. Même avec la version gratuite, vous obtenez un accès limité aux tweets récents. Pour ce script, nous utiliserons le demandes bibliothèque pour interagir avec l’API et pandas pour organiser les résultats.

Vous aurez besoin d’un compte de développeur et d’un jeton de support (à partir du portail des développeurs Twitter / X).

import requests
import pandas as pd

BEARER_TOKEN = 'YOUR_TWITTER_BEARER_TOKEN'  # Replace this with your token

headers = {
    "Authorization": f"Bearer {BEARER_TOKEN}"
}

search_url = "https://api.twitter.com/2/tweets/search/recent"

# Keywords that usually show up in academic opportunities
query = (
    '(phd OR "phd position" OR "master position" OR "fully funded") '
    '("apply now" OR "open position" OR "graduate position") '
    '-is:retweet lang:en'
)

params = {
    'query': query,
    'max_results': 10,  # Max is 100 for recent search
    'tweet.fields': 'author_id,created_at,text',
    'expansions': 'author_id',
    'user.fields': 'username,name',
}

def get_tweets():
    response = requests.get(search_url, headers=headers, params=params)
    if response.status_code != 200:
        raise Exception(f"Request failed: {response.status_code}, {response.text}")
    return response.json()

def extract_tweet_info(data):
    users = {u('id'): u for u in data.get('includes', {}).get('users', ())}
    tweets_info = ()

    for tweet in data.get('data', ()):
        user = users.get(tweet('author_id'), {})
        tweet_url = f"https://twitter.com/{user.get('username')}/status/{tweet('id')}"

        tweets_info.append({
            'Date': tweet('created_at'),
            'Username': user.get('username'),
            'Name': user.get('name'),
            'Text': tweet('text'),
            'Tweet_URL': tweet_url
        })

    return pd.DataFrame(tweets_info)

if __name__ == "__main__":
    data = get_tweets()
    df = extract_tweet_info(data)
    print(df(('Date', 'Username', 'Text', 'Tweet_URL')).head())
    df.to_csv('phd_masters_positions_twitter.csv', index=False)

Vous pouvez exécuter cette semaine et enregistrer les résultats dans un CSV ou même les envoyer par e-mail à vous-même.

# Emballage

Honnêtement, je n’ai pas commencé à utiliser Python pour l’automatisation, mais au fil du temps, j’ai réalisé combien de temps se passait dans de petites choses répétitives qui mange tranquillement à mon objectif. Ces scripts peuvent sembler basiques, mais ils aident vraiment à libérer le temps et l’espace de tête.

Vous n’avez pas besoin de tout automatiser. Choisissez simplement une ou deux tâches que vous effectuez le plus souvent et construisez à partir de là. J’ai trouvé qu’une fois que vous commencez par une automatisation simple, vous commencez à repérer plus de façons de faciliter la vie un peu plus facile. C’est là que cela commence vraiment à cliquer.

Faites-moi savoir si vous finissez par l’utiliser ou construisez vos propres versions. J’adorerais voir ce que vous proposez.

Kanwal Mehreen est un ingénieur d’apprentissage automatique et un écrivain technique avec une profonde passion pour la science des données et l’intersection de l’IA avec la médecine. Elle a co-écrit l’ebook « Maximiser la productivité avec Chatgpt ». En tant que Google Generation Scholar 2022 pour APAC, elle défend la diversité et l’excellence académique. Elle est également reconnue comme une diversité de Teradata dans Tech Scholar, le boursier de recherche Mitacs Globalink et le savant de Harvard WECODE. Kanwal est un ardent défenseur du changement, après avoir fondé des femmes pour autonomiser les femmes dans les champs STEM.





Source link

Related post