Python за 5 минут: 3 программы для автоматизации

Python — мощный и универсальный язык программирования, возможности которого значительно шире, чем просто вывод «Hello, world!». Мы создадим три практичных программы, демонстрирующие реальное применение Python в повседневной жизни.

Автоматическая сортировка файлов

Программа автоматизирует перенос файлов из одной папки в другую на основе их расширения. Это полезно для организации файлов из папки «Загрузки».

Для создания программы понадобится библиотека watchdog. После её установки, импортируем необходимые модули: Observer, FileSystemEventHandler и os, shutil.

Создадим класс, наследующий FileSystemEventHandler, и переопределим метод on_modified. В этом методе будем перебирать файлы в указанной директории (source_dir) и перемещать файлы с определенным расширением (например, фотографии — .jpg, .png) в другую директорию (destination_dir). Укажите полные пути к папкам.

Создадим объекты Observer и EventHandler, свяжем их и запустим наблюдение за директорией. Добавим небольшую задержку для корректной работы. Программа будет автоматически сортировать файлы по расширениям. Вы можете легко изменить расширения и пути к папкам.

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
import shutil

class FileSorter(FileSystemEventHandler):
    def __init__(self, source_dir, destination_dir):
        self.source_dir = source_dir
        self.destination_dir = destination_dir

    def on_modified(self, event):
        if event.is_directory:
            return None
        
        for filename in os.listdir(self.source_dir):
            src_path = os.path.join(self.source_dir, filename)
            if filename.lower().endswith(('.jpg', '.png')):
                dst_path = os.path.join(self.destination_dir, filename)
                shutil.move(src_path, dst_path)

source_dir = "/путь/к/исходной/папке" # Замените на ваш путь
destination_dir = "/путь/к/целевой/папке"  # Замените на ваш путь

event_handler = FileSorter(source_dir, destination_dir)
observer = Observer()
observer.schedule(event_handler, source_dir, recursive=False)
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()

Простой HTTP-сервер

Вторая программа — это полноценный HTTP-сервер, созданный без использования внешних фреймворков, таких как Django или Flask. Используем только встроенные модули Python.

Импортируем необходимые классы из модуля http.server. Укажем localhost и порт для подключения. Создадим объект сервера и запустим его в бесконечном цикле. Для пользователей Linux, может потребоваться предварительная установка python3-http.server.

Для отображения веб-страницы, создадим файл index.html с HTML-разметкой. При обращении к серверу, он будет отображать содержимое этого файла.

import http.server
import socketserver

PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

with socketserver.TCPServer(("", PORT), Handler) as httpd:
    print("serving at port", PORT)
    httpd.serve_forever()

Автоматизация работы с браузером

Третья программа демонстрирует автоматизацию работы с браузером при помощи Selenium. Библиотека позволяет управлять браузером программным путем.

Установите Selenium через терминал (pip install selenium). Затем скачайте веб-драйвер для вашего браузера с официального сайта Selenium. Укажите полный путь к скачанному драйверу в программе. После этого, можно использовать Selenium для открытия любого URL в браузере.

from selenium import webdriver

driver_path = "/путь/к/вашему/драйверу" # Замените на ваш путь
url = "https://www.example.com"

driver = webdriver.Chrome(executable_path=driver_path)
driver.get(url)

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

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