Автоматизация на Python: практические сценарии для серверов и VPS

Автоматизация на Python: практические сценарии для серверов и VPS

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

Скрипты можно запускать как на домашнем компьютере, так и на VPS, если нужна круглосуточная обработка файлов или совместная работа нескольких сотрудников. Такой подход избавляет от рутины: Python берёт на себя повторяющиеся задачи, а вы освобождаете время для действительно важных дел.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

popup12

Подготовка

Установите Python, если он ещё не стоит на вашем компьютере.

Для Windows или Mac зайдите на официальный сайт python.org и скачайте последнюю версию.

Во время установки не забудьте поставить галочку «Add Python to PATH».

Создание резервных копий важной информации

Python поможет автоматически создавать резервные копии.

С помощью простого процесса скопируем всё необходимое, например, на внешний диск.

Выберите исходный источник — скажем, «Документы». И укажите, куда сохранять резервные версии — например, на диск D:\Backup.

В «Блокноте» или другом редакторе введите:

import shutil
import os

source = 'ПУТЬ_ИСТОЧНИКА'
destination = 'ПУТЬ_ПРИЁМНИКА'

files = os.listdir(source)

for file in files:
    full_file_name = os.path.join(source, file)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, destination)

print("Резервное копирование завершено.")

В строках source и destination замените пути на свои. Например:

source = 'C:/Users/Имя/Documents'
destination = 'D:/Backup'

Сохраните с расширением .py. И запустите через терминал так же, как в первом примере.

Программа проходит по выбранной папке. Для каждого документа создаёт копию.

Даже если исходная информация случайно удалится, копии останутся.

Быстрый поиск и удаление ненужных файлов

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

Создадим программу, которая уничтожит информацию старше заданного количества дней, например, старше 30 дней.

Решите, в каком месте хотите почистить — например, «Загрузки».

Определите, какой период считать долгим.

Откройте редактор и введите текст:

import os
import time

folder = 'ПУТЬ_К_ПАПКЕ'
days = 30

now = time.time()
cutoff = now - (days * 86400)

for filename in os.listdir(folder):
    file_path = os.path.join(folder, filename)
    if os.path.isfile(file_path):
        file_mtime = os.path.getmtime(file_path)
        if file_mtime < cutoff:
            os.remove(file_path)
            print(f"Удалён файл: {filename}")

print("Очистка завершена.")

Замените folder на путь вашей папки, например:

folder = 'C:/Users/Имя/Downloads'

Поменяйте число days на своё.

Сохраните, например как clean_old_files.py.

Запустите систему через терминал.

Автоматическое переименование файлов по шаблону

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

Пример:

import os

folder = 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ'
prefix = 'Фото_'
start_number = 1

files = os.listdir(folder)
files.sort()

for i, filename in enumerate(files, start=start_number):
    old_path = os.path.join(folder, filename)
    extension = os.path.splitext(filename)[1]
    new_name = f"{prefix}{i}{extension}"
    new_path = os.path.join(folder, new_name)
    os.rename(old_path, new_path)
    print(f"{filename} переименован в {new_name}")

print("Переименование завершено.")

Замените 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ' на нужный путь, а prefix и start_number — на желаемые значения. 

Отправка автоматических напоминаний по электронной почте

Напомнить о делах, встречах и задачах, Python может отправлять письма в нужное время с заданным текстом на определённые адреса.

Необходим почтовый ящик для отсылки.

Рекомендуется использовать безопасные пароли.

Создайте файл send_reminder.py.

Введите следующий код:

import smtplib
from email.mime.text import MIMEText

smtp_server = 'smtp.gmail.com'
smtp_port = 587
login = 'ваш_email@gmail.com'
password = 'пароль_приложения'

from_addr = login
to_addr = 'получатель@example.com'
subject = 'Напоминание'
body = 'Это ваше автоматическое напоминание.'

msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = from_addr
msg['To'] = to_addr

server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(login, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

print('Письмо отправлено.')

Замените 'ваш_email@gmail.com' и 'пароль_приложения' на свои.

В поле to_addr укажите адрес получателя.

В subject и body измените тему и текст письма по своему желанию.

Запустите скрипт, чтобы проверить отправку.

Программа устанавливает соединение с почтовым сервером. Проходит аутентификацию с помощью логина и пароля. Формирует письмо с заданной темой и текстом. Отправляет на указанный адрес.

Для рассылки нескольким адресатам, можно передать их список в параметр sendmail.

Автоматический сбор данных с веб-сайтов

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

Страницы с текстом и информацией отображаются в браузере с использованием HTML. Нужно научить устройство находить определённые части сайта.

Установим два модуля («библиотеки») Requests и BeautifulSoup.

В окно для ввода команд копируем или пишем строку и жмём Enter:

 pip install requests beautifulsoup4

Так загрузится всё необходимое.

Появится запрос на нужный веб-сайт и считается содержимое страницы.

Затем будут выбраны необходимые части.

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

Создание и заполнение таблиц

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

Установим библиотеки.

В терминале введите команду pip install openpyxl и нажмите Enter. 

Откройте текстовый редактор, укажите необходимые заголовки и данные, место, куда сохранить готовый файл.

Разберём один из вариантов.

В редакторе скопируем и вставим такой текст:

from openpyxl import Workbook

Создаём новую таблицу:

wb = Workbook()
ws = wb.active

Добавляем заголовки колонок:

ws.append(['Имя', 'Телефон', 'Сумма'])

Добавляем данные в строки:

ws.append(['Иван Иванов', '+7 900 123 45 67', 1500])
ws.append(['Мария Петрова', '+7 901 234 56 78', 2300])

Сохраняем файл:

wb.save('клиенты.xlsx')

Сделайте это в формате .py, например create_table.py, переходите в терминале в выбранную директорию и наберите команду:

python create_table.py

Появится файл клиенты.xlsx, который можно открыть в Excel или в другой программе для работы с таблицами. В нём будут заголовки и две строки с данными, как указано в описании.

Уведомление звуком по окончании действия

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

В редакторе введите следующий текст:

import time
import winsound  # Для Windows

time.sleep(10) # Ждём 10 секунд

winsound.Beep(1000, 500) (звуковой сигнал: частота 1000 Гц, длительность 500 мс).

Для Mac чуть другой способ, но сейчас сосредоточимся на Windows.

Сохраните как sound_alert.py, обязательно с расширением .py.

В командной строке переходим в каталог с сохранённым документом, например:

cd C:\Users\Ваше_Имя\Documents

Активируем программу:

python sound_alert.py

Компьютер подождёт 10 секунд и даст звуковой сигнал.

При необходимости заменяем время ожидания в строке time.sleep(10), то есть количество секунд, на любой другой период.

time.sleep командует «подожди столько секунд», winsound.Beep воспроизводит сигнал.

Автоматическая сортировка по папкам с помощью Python

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

Выберите нужную папку («Загрузки», «Рабочий стол»).

Создайте резервную копию папки.

В редакторе введите:

import os  # Модуль для работы с файлами и папками
import shutil  # Модуль для перемещения файлов

Укажите путь к папке, где лежат ваши файлы:

folder = 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ'

Создаём словарь с расширениями и соответствующими папками:

folders = {
    'Фото': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
    'Видео': ['.mp4', '.avi', '.mov', '.mkv'],
    'Документы': ['.pdf', '.docx', '.txt', '.xlsx', '.pptx'],
    'Музыка': ['.mp3', '.wav', '.aac'],
    'Архивы': ['.zip', '.rar', '.7z'],
}

Проходим по всем файлам в папке:

for filename in os.listdir(folder):
    file_path = os.path.join(folder, filename)

Проверяем, что это файл (а не папка):

    if os.path.isfile(file_path):

Получаем расширение файла в нижнем регистре:

        ext = os.path.splitext(filename)[1].lower() 

Ищем папку для данного расширения:

        moved = False
        for folder_name, extensions in folders.items():
            if ext in extensions:

Путь к папке, куда переместим файл:

                target_folder = os.path.join(folder, folder_name)

Если папки нет — создаем:

                if not os.path.exists(target_folder):
                    os.makedirs(target_folder)

Новый путь для файла:

                target_path = os.path.join(target_folder, filename)

Перемещаем файл:

                shutil.move(file_path, target_path)
                print(f"Файл {filename} перемещён в папку {folder_name}")
                moved = True
                break

Если расширение не найдено — оставляем файл на месте:

        if not moved:
            print(f"Файл {filename} не отнесён ни к одной категории")

print("Сортировка завершена.")

Смените в строке folder = 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ' путь на адрес вашей папки. Например:

folder = 'C:/Users/Имя/Downloads'

Сохраните файл с именем sort_files.py. Выберите тип «Все файлы» и обязательно добавьте расширение .py.

Откройте терминал или командную строку.

В папке, где сохранили файл sort_files.py, например cd C:\Users\Имя\Documents, запустите команду:

python sort_files.py

Алгоритм берёт список всех файлов в заданной папке. Для каждого из них смотрит расширение и определяет, к какой категории он относится.

При отсутствии такого каталога создаст его.

Если файл не подходит ни под одну категорию, оставляет его без изменений.

Отслеживание изменений и получение уведомлений

Для оптимизации времени и работы можно настроить автоматическую проверку и уведомления через электронную почту или вывод в терминал.

Выберите каталог для мониторинга.

Сделайте резервную копию папки.

В редакторе введите следующий текст:

import os
import time

Путь к папке, которую нужно контролировать:

folder = 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ'

Интервал проверки в секундах (например, 60 секунд):

check_interval = 60

Функция для получения имени и времени последнего изменения:

def get_files_state(path):
    state = {}
    for filename in os.listdir(path):
        file_path = os.path.join(path, filename)
        if os.path.isfile(file_path):
            state[filename] = os.path.getmtime(file_path)
    return state

print(f"Начинаем мониторинг папки: {folder}")
previous_state = get_files_state(folder)

while True:
    time.sleep(check_interval)
    current_state = get_files_state(folder)

Проверяем новые файлы:

    new_files = [f for f in current_state if f not in previous_state]

Проверяем удалённые файлы:

    deleted_files = [f for f in previous_state if f not in current_state]

Проверяем изменённые файлы:

    modified_files = [f for f in current_state if f in previous_state and current_state[f] != previous_state[f]]

    if new_files or deleted_files or modified_files:
        if new_files:
            print(f"Добавлены файлы: {', '.join(new_files)}")
        if deleted_files:
            print(f"Удалены файлы: {', '.join(deleted_files)}")
        if modified_files:
            print(f"Изменены файлы: {', '.join(modified_files)}")
        print("-----")
    else:
        print("Изменений нет.")

    previous_state = current_state

В строке folder = 'ПУТЬ_К_ВАШЕЙ_ПАПКЕ' укажите путь к нужной папке. Например:

folder = 'C:/Users/Имя/Documents/Work'

По желанию можно изменить интервал проверки. По умолчанию он 60 секунд.

Сохраните изменения с именем monitor_folder.py с расширением .py.

В терминале или в командной строке перейдите в каталог с файлом:

cd ПУТЬ_К_ПАПКЕ_С_ФАЙЛОМ

Запустите программу:

python monitor_folder.py

Автоматизация экспорта и импорта в информационных базах

Python может выгружать данные в Excel и загружать их обратно.

Установите библиотеку pandas:

pip install pandas

Скрипт для экспорта из базы SQLite в Excel:

import sqlite3
import pandas as pd

conn = sqlite3.connect('ваша_база.db')
df = pd.read_sql_query("SELECT * FROM ваша_таблица", conn)
df.to_excel('экспорт_данных.xlsx', index=False)
conn.close()
print("Экспорт завершён.")

Измените ваша_база.db, ваша_таблица, имя файла.

Запустите:

python export_db.py

Скрипт для импорта из Excel обратно в базу:

import sqlite3
import pandas as pd

conn = sqlite3.connect('ваша_база.db')
df = pd.read_excel('экспорт_данных.xlsx')
df.to_sql('ваша_таблица', conn, if_exists='replace', index=False)
conn.close()
print("Импорт завершён.")

Измените параметры и запустите аналогично.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях