21 einfache Python-Skripte, die Ihre täglichen Aufgaben automatisieren

Als jemand, der über ein Jahrzehnt in der Programmierwelt verbracht hat, habe ich gelernt, dass die Automatisierung wiederkehrender Aufgaben eine erhebliche Menge an Zeit und Mühe sparen kann.

Python mit seiner einfachen Syntax und leistungsstarken Bibliotheken ist eine der besten Programmiersprachen zur Erstellung von Automatisierungsskripten. Egal, ob Sie ein Programmierer sind oder jemand, der tägliche Aufgaben erleichtern möchte, Python hat Werkzeuge, die Ihnen helfen können.

In diesem Artikel werde ich 21 Python-Skripte teilen, die ich verwendet habe, um verschiedene Aufgaben zu automatisieren. Diese Skripte sind perfekt für jeden, der Zeit sparen und die Effizienz in seinem Arbeitsablauf verbessern möchte.

1. Dateien in Massen umbenennen

Dateien einzeln umzubenennen kann eine zeitaufwändige Aufgabe sein, aber mit Python können Sie dies einfach automatisieren, indem Sie das os-Modul verwenden.

Hier ist ein einfaches Skript, das mehrere Dateien in einem Ordner basierend auf einem gegebenen Muster umbenennt:

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')

Dieses Skript sucht nach Dateien, die old_name_part in ihren Namen enthalten, und ersetzt es durch new_name_part.

2. Dateien automatisch sichern

Wir alle wissen, wie wichtig es ist, Dateien regelmäßig zu sichern, und diese Aufgabe kann leicht mit dem shutil-Modul von Python automatisiert werden.

Dieses Skript kopiert alle Dateien von einem Verzeichnis in ein anderes zu Sicherungszwecken:

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)

Sie können dieses Skript so planen, dass es täglich mit Aufgabenplanungs-Tools wie cron (Linux) oder Task Scheduler (Windows) ausgeführt wird.

3. Herunterladen von Dateien aus dem Internet

Wenn Sie häufig Dateien aus dem Internet herunterladen, können Sie diese Aufgabe mit der aiohttp-Bibliothek automatisieren.

Hier ist ein einfaches Skript zum Herunterladen von Dateien von URLs:

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())

Dieses Skript lädt die Datei von der angegebenen URL herunter und speichert sie in Ihrem angegebenen Ordner.

4. Automatisierung von E-Mail-Berichten

Wenn Sie regelmäßig E-Mail-Berichte versenden müssen, können Sie dies mit der smtplib-Bibliothek automatisieren, die es Ihnen ermöglicht, ganz einfach E-Mails von einem Gmail-Konto zu senden:

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]')

Dieses Skript sendet eine einfache E-Mail mit Betreff und Text an einen angegebenen Empfänger. Stellen Sie sicher, dass Sie in Gmail weniger sichere Apps aktivieren, wenn Sie diese Methode verwenden.

5. Aufgabenplanung (Aufgabenautomatisierung)

Die Planung von Aufgaben kann einfach mit der schedule-Bibliothek erfolgen, die es Ihnen ermöglicht, Aufgaben wie das Senden einer E-Mail oder das Ausführen eines Backup-Skripts zu bestimmten Zeiten zu automatisieren:

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)

Dieses Skript wird weiterhin ausgeführt und löst Aufgaben zur angegebenen Zeit aus, in diesem Fall jeden Tag um 10:00 Uhr.

6. Web Scraping zur Datenerfassung

Die Verwendung von aiohttp für asynchrone HTTP-Anfragen anstelle der synchronen requests-Bibliothek kann das Web-Scraping effizienter machen.

In diesem Beispiel werden mehrere Seiten parallel abgerufen.

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. Automatisierung von Social-Media-Beiträgen

Wenn Sie Social-Media-Konten verwalten, können Sie das Posten automatisieren, indem Sie Bibliotheken wie Tweepy (für Twitter) und Instagram-API (für Instagram) verwenden, um automatisch Beiträge zu veröffentlichen.

Im Folgenden finden Sie ein Beispiel zur Verwendung der Tweepy-Bibliothek zum Veröffentlichen eines Tweets:

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!")

Dieses Skript veröffentlicht einen Tweet mit der Nachricht „Hallo, Welt!“ auf Ihrem Twitter-Konto.

8. Automatisierung der Rechnungserstellung

Wenn Sie regelmäßig Rechnungen erstellen, können Sie dies mit Bibliotheken wie Fpdf automatisieren, die PDF-Rechnungen erstellen werden:

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)

Dieses Skript erstellt eine einfache Rechnung und speichert sie als PDF.

9. Überwachung der Website-Verfügbarkeit

Mit Python können Sie die Überwachung der Website-Verfügbarkeit mit der requests-Bibliothek automatisieren, die regelmäßig prüfen kann, ob eine Website online ist oder nicht:

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

Dieses Skript überprüft, ob die Website online ist, und gibt den Statuscode aus.

10. Automatische Antwort auf E-Mails

Wenn Sie häufig E-Mails erhalten und eine automatische Antwort einrichten möchten, verwenden Sie die Bibliotheken imaplib und smtplib, um automatisch auf E-Mails zu antworten:

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()

Dieses Skript antwortet automatisch auf ungelesene E-Mails mit einer vordefinierten Nachricht.

11. Dateibereinigung

Python bietet eine effektive Möglichkeit, die Dateiaufräumarbeiten zu automatisieren, insbesondere zum Löschen oder Verschieben alter Dateien, um organisierte Verzeichnisse aufrechtzuerhalten.

Im Folgenden finden Sie ein einfaches Skript, das Dateien löscht, die älter als eine bestimmte Anzahl von Tagen sind, unter Verwendung der Module os und 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. Passwörter automatisch generieren

Das Erstellen starker, einzigartiger Passwörter ist für die Sicherheit unerlässlich, und Python kann diesen Prozess mithilfe des Moduls random automatisieren.

Im Folgenden finden Sie ein einfaches Skript, das zufällige Passwörter einer bestimmten Länge generiert und Buchstaben, Zahlen und Sonderzeichen zur Verbesserung der Sicherheit integriert.

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. Aufgabenverfolgung/Erinnerung

Das Erstellen eines Aufgabenverfolgungs- oder Erinnerungssystems in Python kann mithilfe der Module datetime und asyncio erreicht werden.

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())

Dieses Skript sendet zur geplanten Zeit eine Erinnerung an die Aufgabe.

14. Automatische Generierung von täglichen Berichten

Automatisieren Sie tägliche Berichte, indem Sie Python verwenden, um Daten zu sammeln und in einen Bericht zu formatieren:

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. Überwachung der Systemressourcen

Wenn Sie ein Systemadministrator sind, können Sie Python verwenden, um die Ressourcen Ihres Systems wie CPU- und Speicherauslastung mit Hilfe der psutil-Bibliothek zu überwachen.

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. Stapelverarbeitung zur Bildgrößenänderung

Wenn Sie Bilder in großen Mengen skalieren müssen, macht Python dies mit der Pillow-Bibliothek einfach.

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))

Dieses Skript ändert die Größe aller .jpg-Bilder in einem Ordner auf die angegebenen Abmessungen.

17. Automatisches Daten-Backup in die Cloud

Die Automatisierung von Backups in Cloud-Diensten wie Google Drive ist mit Python mithilfe von Bibliotheken wie pydrive möglich.

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. Erstellung täglicher Erinnerungen

Das Einrichten täglicher Erinnerungen ist mit dem time-Modul einfach, das Sie alle 2 Stunden daran erinnern wird, Wasser zu trinken:

import time

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

water_reminder()

19. Automatisches Eintragen von Daten in Excel

Wenn Sie häufig Daten in Excel eingeben, kann Ihnen Python mit der Bibliothek openpyxl bei der Automatisierung dieser Aufgabe helfen:

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. Automatisches Datenbereinigen

Wenn Sie mit großen Datensätzen arbeiten, kann Python Aufgaben zur Datenbereinigung automatisieren, indem leere Zeilen aus einer CSV-Datei entfernt werden:

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. Textextraktion aus Bildern

Mit Python kann Text aus Bildern mithilfe der pytesseract-Bibliothek extrahiert werden, was nützlich sein kann, wenn Sie gedruckte Inhalte digitalisieren oder Text aus gescannten Dokumenten extrahieren müssen.

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

Dies sind nur einige Beispiele dafür, was Python tun kann, um Ihre täglichen Aufgaben zu automatisieren. Mit seiner einfachen Syntax und leistungsstarken Bibliotheken kann Python fast jede Aufgabe bewältigen, die Sie ihm stellen.

Ob Sie Dateien verwalten, E-Mails senden oder Berichte generieren, Python kann Ihnen Zeit sparen und Ihre Produktivität steigern. Fangen Sie also heute mit der Python-Automatisierung an und lassen Sie sie Ihre täglichen Aufgaben erledigen!

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