20 простых скриптов Python, которые позволят автоматизировать ваши повседневные задачи

Как человек, который провел более десяти лет в мире программирования, я понял, что автоматизация повторяющихся задач может сэкономить значительное количество времени и усилий.

Python, с его простым синтаксисом и мощными библиотеками, является одним из лучших языков программирования для создания сценариев автоматизации. Независимо от того, являетесь ли вы программистом или хотите упростить выполнение повседневных задач, в Python есть инструменты, которые могут вам помочь.

В этой статье я расскажу о 20 скриптах Python, которые я использовал для автоматизации различных задач. Эти скрипты идеально подходят для тех, кто хочет сэкономить время и повысить эффективность своей работы.

1. Массовое переименование файлов

Переименование файлов по одному может быть трудоемкой задачей, но с помощью Python вы можете легко автоматизировать это с помощью модуля os.

Вот простой скрипт, который переименовывает несколько файлов в папке на основе заданного шаблона:

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

Этот скрипт ищет файлы, содержащие в своем имени old_name_part, и заменяет его на new_name_part.

2. Автоматическое резервное копирование файлов

Все мы знаем, как важно регулярно создавать резервные копии файлов, и эту задачу можно легко автоматизировать с помощью модуля Pythons shutil.

Этот скрипт скопирует все файлы из одной директории в другую для резервного копирования:

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)

Вы можете запланировать ежедневный запуск этого скрипта с помощью инструментов планирования задач, таких как Сron или в Планировщике Windows.

3. Загрузка файлов из Интернета

Если вы часто скачиваете файлы из интернета, то можете автоматизировать эту задачу с помощью библиотеки requests.

Вот простой скрипт для загрузки файлов с URL-адресов:

import requests
def download_file(url, destination_folder):
    response = requests.get(url)
    if response.status_code == 200:
        with open(destination_folder, 'wb') as file:
            file.write(response.content)
        print(f"Downloaded {url} to {destination_folder}")
    else:
        print(f"Failed to download {url}")
url = 'https://example.com/file.pdf' destination = '/path/to/destination/file.pdf' download_file(url, destination)

Этот скрипт загружает файл с указанного URL и сохраняет его в указанной вами папке.

4. Автоматизация отчетов по электронной почте

Если вам необходимо регулярно отправлять отчеты по электронной почте, вы можете автоматизировать это с помощью библиотеки smtplib, которая позволяет легко отправлять письма из учетной записи 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]')

Этот скрипт отправит простое письмо с темой и телом указанному получателю. При использовании этого метода не забудьте включить в Gmail менее безопасные приложения.

5. Планировщик задач (автоматизация задач)

Планирование задач можно легко осуществить с помощью библиотеки schedule, которая позволяет автоматизировать такие задачи, как отправка электронного письма или запуск сценария резервного копирования в определенное время:

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)

Этот скрипт будет запускать и запускать задачи в указанное время, в данном случае утром в 10:00 каждый день.

6. Веб-скраппинг для сбора данных

Веб-скрепинг – это мощная техника для автоматизации сбора данных с веб-сайтов, а библиотеки Pythons BeautifulSoup и requests делают этот процесс простым.

import requests
from bs4 import BeautifulSoup
def scrape_website(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    data = soup.find_all('h1')  # Example: Get all headings
    for item in data:
        print(item.text)
url = 'https://example.com' scrape_website(url)

Этот скрипт получает содержимое веб-страницы и выводит все заголовки (теги h1). Вы можете настроить его для поиска других типов данных.

7. Автоматизация постов в социальных сетях

Если вы ведете аккаунты в социальных сетях, то можете автоматизировать постинг с помощью библиотек, таких как Tweepy (для Twitter) и Instagram-API (для Instagram), которые позволяют постить автоматически.

Ниже приведен пример использования библиотеки Tweepy для публикации твита:

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

Этот скрипт отправляет твит с сообщением Hello, world! на ваш аккаунт в Twitter.

8. Автоматизация создания счетов-фактур

Если вы регулярно генерируете счета-фактуры, то можете автоматизировать это с помощью библиотек вроде Fpdf, которые будут создавать счета-фактуры в формате 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)

Этот скрипт создает простой счет-фактуру и сохраняет его в формате PDF.

9. Мониторинг работоспособности веб-сайта

Python можно использовать для автоматизации мониторинга работоспособности сайтов с помощью библиотеки requests, которая периодически проверяет, находится ли сайт в сети или нет:

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

Этот скрипт проверяет, находится ли сайт в сети, и выводит код состояния.

10. Автоответчик на электронные письма

Если вы часто получаете электронные письма и хотите настроить автоответчик, используйте библиотеки imaplib и smtplib для автоматического ответа на письма:

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

Этот скрипт автоматически отвечает на непрочитанные письма заранее определенным сообщением.

11. Очистка файлов

Python предоставляет эффективный способ автоматизации очистки файлов, особенно для удаления или перемещения старых файлов для поддержания упорядоченных каталогов.

Ниже приведен простой сценарий, который удаляет файлы старше заданного количества дней с помощью модулей os и time.
import os
import time
def clean_up(folder_path, days_old):
    now = time.time()
    cutoff_time = now - (days_old * 86400)  # 86400 seconds in a day
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        if os.path.getmtime(file_path) < cutoff_time:
            os.remove(file_path)
            print(f"Deleted {filename}")
folder = '/path/to/your/folder' clean_up(folder, 30) # Delete files older than 30 days

12. Автоматически генерировать пароли

Создание надежных, уникальных паролей очень важно для безопасности, и Python может помочь автоматизировать этот процесс с помощью модуля random.

Ниже представлен простой скрипт, который генерирует случайные пароли заданной длины, используя буквы, цифры и специальные символы для повышения безопасности.

import random
import string
def generate_password(length=12):
    # Define the character set: letters, digits, and punctuation
    characters = string.ascii_letters + string.digits + string.punctuation
    # Generate a random password
    password = ''.join(random.choice(characters) for _ in range(length))
    return password
Example usage: generate a password of 16 characters
password_length = 16
random_password = generate_password(password_length)
print(f"Generated Password: {random_password}")

13. Трекер задач/напоминание

Создать систему отслеживания задач или напоминаний на Python можно с помощью модулей datetime и schedule.

import schedule
import time
from datetime import datetime
def task_reminder(task_name):
    print(f"Reminder: {task_name} - {datetime.now()}")
schedule.every().day.at("09:00").do(task_reminder, task_name="Morning Meeting")
while True:
    schedule.run_pending()
    time.sleep(1)

Этот скрипт отправляет напоминание о задаче в назначенное время.

14. Автоматическая генерация ежедневных отчетов

Автоматизируйте создание ежедневных отчетов, используя Python для сбора данных и их оформления в отчет:

import datetime
def generate_report(data):
    today = datetime.date.today()
    filename = f"daily_report_{today}.txt"
    with open(filename, 'w') as file:
        file.write(f"Report for {today}
")
        file.write("
".join(data))
    print(f"Report generated: {filename}")
data = ["Task 1: Completed", "Task 2: Pending", "Task 3: Completed"]
generate_report(data)

15. Мониторинг системных ресурсов

Если вы являетесь системным администратором, вы можете использовать Python для мониторинга ресурсов системы, таких как использование процессора и памяти, с помощью библиотеки 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. Пакетное изменение размера изображения

Если вам нужно массово изменить размер изображений, Python упрощает эту задачу с помощью библиотеки Pillow.

from PIL import Image
import os
def resize_images(folder_path, width, height):
    for filename in os.listdir(folder_path):
        if filename.endswith('.jpg'):
            img = Image.open(os.path.join(folder_path, filename))
            img = img.resize((width, height))
            img.save(os.path.join(folder_path, f"resized_{filename}"))
            print(f"Resized {filename}")
folder = '/path/to/your/images' resize_images(folder, 800, 600)

Этот скрипт изменяет размеры всех .jpg изображений в папке до указанных размеров.

17. Автоматизация резервного копирования данных в облако

Автоматизация резервного копирования данных в облачные сервисы, такие как Google Drive, возможна на Python с помощью таких библиотек, как 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. Создание ежедневных напоминаний

Установить ежедневные напоминания легко с помощью модуля time, который будет напоминать вам о необходимости пить воду каждые 2 часа:

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

19. Автоматизация ввода данных в Excel

Если вы часто вводите данные в Excel, Python может помочь автоматизировать эту задачу с помощью библиотеки 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. Автоматизация очистки данных

Если вы работаете с большими наборами данных, Python может автоматизировать задачи по очистке данных, которые позволят удалить пустые строки из 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)

Заключение

Это лишь несколько примеров того, что может сделать Python для автоматизации ваших повседневных задач. Благодаря простому синтаксису и мощным библиотекам Python может справиться практически с любой задачей, которую вы перед ним поставите.

Будь то управление файлами, отправка электронной почты или создание отчетов, Python может сэкономить ваше время и повысить производительность. Итак, приступайте к автоматизации на Python уже сегодня и позвольте ему справиться с вашими повседневными делами!

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)