Вам надоело выполнять повторяющиеся задачи в повседневной работе? Скрипт на Python может стать решением проблемы. В этой статье мы рассмотрим скрипты, которые помогут вам автоматизировать различные задачи и повысить производительность труда. Если вы разработчик, аналитик данных или просто хотите упростить свой рабочий процесс, это вам пригодится.
Оглавление
- Автоматизация управления файлами
- Веб-скрапинг с помощью Python
- Обработка текста
- Автоматизация электронной почты
- Автоматизация электронных таблиц Excel
- Взаимодействие с базами данных
- Автоматизация социальных сетей
- Автоматизация системных задач
- Автоматизация редактирования изображений
- Автоматизация сети
- Очистка и преобразование данных
- Автоматизация операций с PDF-файлами
- Автоматизация графического интерфейса
- Автоматизация тестирования
- Автоматизация облачных сервисов
- Обработка естественного языка
1. Автоматизация управления файлами
Сортировка файлов в каталоге
Этот Python-скрипт организует файлы в каталоге, сортируя их по подкаталогам на основе расширений файлов. Он определяет расширение файла и перемещает его в соответствующий подкаталог. Это может быть полезно для наведения порядка в папке загрузок или организации файлов для конкретного проекта.
``` # Python script to sort files in a directory by their extension import os from shutil import move def sort_files(directory_path): for filename in os.listdir(directory_path): if os.path.isfile(os.path.join(directory_path, filename)): file_extension = filename.split('.')[-1] destination_directory = os.path.join(directory_path, file_extension) if not os.path.exists(destination_directory): os.makedirs(destination_directory) move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename)) ```
Удаление пустых папок
Этот код ищет и удаляет пустые папки в указанном каталоге. Он может помочь вам поддерживать чистую и аккуратную структуру папок, особенно при работе с большими наборами данных.
``` # Python script to remove empty folders in a directory import os def remove_empty_folders(directory_path): for root, dirs, files in os.walk(directory_path, topdown=False): for folder in dirs: folder_path = os.path.join(root, folder) if not os.listdir(folder_path): os.rmdir(folder_path) ```
Переименование нескольких файлов
Этот скрипт на Python позволяет одновременно переименовать несколько файлов в каталоге. В качестве входных данных он принимает старое и новое имя и заменяет старое имя на новое для всех файлов, соответствующих заданным критериям.
# Python script to rename multiple files in a directory import os def rename_files(directory_path, old_name, new_name): for filename in os.listdir(directory_path): if old_name in filename: new_filename = filename.replace(old_name, new_name) os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))
2. Веб-скрапинг при помощи Python
Извлечение данных с сайта
Этот скрипт использует библиотеки requests и BeautifulSoup для поиска данных на сайте. Он получает содержимое веб-страницы и использует BeautifulSoup для разбора HTML. Сценарий можно настроить для извлечения специфических данных, таких как заголовки, информация о продукте или ценах.
# Python script for web scraping to extract data from a website import requests from bs4 import BeautifulSoup def scrape_data(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # Your code here to extract relevant data from the website
Загрузка большого количества изображений
Этот скрипт на Python предназначен для массовой загрузки изображений с сайта. Предполагается, что сайт предоставляет JSON API, который возвращает массив URL-адресов изображений. Затем скрипт перебирает URL-адреса и загружает изображения, сохраняя их в указанную директорию.
# Python script to download images in bulk from a website import requests def download_images(url, save_directory): response = requests.get(url) if response.status_code == 200: images = response.json() # Assuming the API returns a JSON array of image URLs for index, image_url in enumerate(images): image_response = requests.get(image_url) if image_response.status_code == 200: with open(f"{save_directory}/image_{index}.jpg", "wb") as f: f.write(image_response.content)
Автоматизация отправки форм
Этот скрипт автоматизирует отправку форм на сайте, посылая POST-запросы с данными формы. Вы можете настроить сценарий, указав URL и необходимые данные формы для отправки.
# Python script to automate form submissions on a website import requests def submit_form(url, form_data): response = requests.post(url, data=form_data) if response.status_code == 200: # Your code here to handle the response after form submission
3. Обработка текста
Подсчет слов в текстовом файле
Этот код считывает текстовый файл и подсчитывает количество содержащихся в нем слов. Он может использоваться для быстрого анализа содержимого текстовых документов или для отслеживания количества слов в письменном проекте.
``` # Python script to count words in a text file def count_words(file_path): with open(file_path, 'r') as f: text = f.read() word_count = len(text.split()) return word_count ```
Поиск и замена текста
Этот сценарий на языке Python выполняет поиск определенного текста в файле и заменяет его на нужный. Он может быть полезен для пакетной замены определенных фраз или исправления ошибок в больших текстовых файлах.
``` # Python script to find and replace text in a file def find_replace(file_path, search_text, replace_text): with open(file_path, 'r') as f: text = f.read() modified_text = text.replace(search_text, replace_text) with open(file_path, 'w') as f: f.write(modified_text) ```
Генерация случайного текста
Этот скрипт генерирует случайный текст заданной длины. Он может быть использован для тестирования, а также в качестве источника случайного контента для творческих работ.
``` # Python script to generate random text import random import string def generate_random_text(length): letters = string.ascii_letters + string.digits + string.punctuation random_text = ''.join(random.choice(letters) for i in range(length)) return random_text ```
4. Автоматизация электронной почты
Отправка персонализированных писем
Этот скрипт на Python позволяет отправлять персонализированные электронные письма списку получателей. Вы можете настроить адрес электронной почты отправителя, пароль, тему, тело и список адресов получателей. Обратите внимание, что в целях безопасности при работе с Gmail следует использовать пароль, специфичный для данного приложения.
``` # Python script to send personalized emails to a list of recipients import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def send_personalized_email(sender_email, sender_password, recipients, subject, body): server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, sender_password) for recipient_email in recipients: message = MIMEMultipart() message['From'] = sender_email message['To'] = recipient_email message['Subject'] = subject message.attach(MIMEText(body, 'plain')) server.sendmail(sender_email, recipient_email, message.as_string()) server.quit() ```
Отправка вложений файлов по электронной почте
Этот скрипт позволяет отправлять электронные письма с файловыми вложениями. Просто укажите email отправителя, пароль, email получателя, тему, тело и путь к файлу, который необходимо прикрепить.
``` # Python script to send emails with file attachments import smtplib from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email import encoders def send_email_with_attachment(sender_email, sender_password, recipient_email, subject, body, file_path): server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, sender_password) message = MIMEMultipart() message['From'] = sender_email message['To'] = recipient_email message['Subject'] = subject message.attach(MIMEText(body, 'plain')) with open(file_path, "rb") as attachment: part = MIMEBase('application', 'octet-stream') part.set_payload(attachment.read()) encoders.encode_base64(part) part.add_header('Content-Disposition', f"attachment; filename= {file_path}") message.attach(part) server.sendmail(sender_email, recipient_email, message.as_string()) server.quit() ```
Автоматическое напоминание по электронной почте
Этот скрипт на Python автоматически отправляет напоминания по электронной почте в зависимости от заданной даты. Он полезен для установки напоминаний о важных задачах или событиях: благодаря ему вы не пропустите ни одного дедлайна.
``` # Python script to send automatic email reminders import smtplib from email.mime.text import MIMEText from datetime import datetime, timedelta def send_reminder_email(sender_email, sender_password, recipient_email, subject, body, reminder_date): server = smtplib.SMTP('smtp.gmail.com', 587) server.starttls() server.login(sender_email, sender_password) now = datetime.now() reminder_date = datetime.strptime(reminder_date, '%Y-%m-%d') if now.date() == reminder_date.date(): message = MIMEText(body, 'plain') message['From'] = sender_email message['To'] = recipient_email message['Subject'] = subject server.sendmail(sender_email, recipient_email, message.as_string()) server.quit() ```
5. Автоматизация таблиц Excel
Чтение и запись в Excel
Этот сценарий на языке Python использует библиотеку pandas для чтения данных из таблицы Excel и записи их в новый файл Excel. Он позволяет программно работать с файлами Excel, делая манипулирование данными и их анализ более эффективным.
``` # Python script to read and write data to an Excel spreadsheet import pandas as pd def read_excel(file_path): df = pd.read_excel(file_path) return df def write_to_excel(data, file_path): df = pd.DataFrame(data) df.to_excel(file_path, index=False) ```
Анализ и визуализация данных
Этот код на Python использует библиотеки pandas и matplotlib для анализа и визуализации данных. Он позволяет исследовать наборы данных, делать выводы и создавать визуальные представления данных.
``` # Python script for data analysis and visualization with pandas and matplotlib import pandas as pd import matplotlib.pyplot as plt def analyze_and_visualize_data(data): # Your code here for data analysis and visualization pass ```
Объединение нескольких листов
Этот сценарий объединяет данные из нескольких листов в файле Excel в один лист. Это удобно, когда данные разбросаны по разным листам, но их нужно объединить для дальнейшего анализа.
``` # Python script to merge multiple Excel sheets into a single sheet import pandas as pd def merge_sheets(file_path, output_file_path): xls = pd.ExcelFile(file_path) df = pd.DataFrame() for sheet_name in xls.sheet_names: sheet_df = pd.read_excel(xls, sheet_name) df = df.append(sheet_df) df.to_excel(output_file_path, index=False) ```
6. Взаимодействие с базами данных
Подключение к базе данных
Этот скрипт на Python позволяет подключаться к базе данных SQLite и выполнять запросы. Его можно адаптировать для работы с другими системами управления базами данных, такими как MySQL или PostgreSQL, используя соответствующие драйверы баз данных Python.
``` # Python script to connect to a database and execute queries import sqlite3 def connect_to_database(database_path): connection = sqlite3.connect(database_path) return connection def execute_query(connection, query): cursor = connection.cursor() cursor.execute(query) result = cursor.fetchall() return result ```
Выполнение SQL-запросов
Этот код представляет собой общую функцию для выполнения SQL-запросов к базе данных. В качестве аргумента функции можно передать запрос, а также объект подключения к базе данных, и она вернет результат запроса.
``` # Python script to execute SQL queries on a database import sqlite3 def execute_query(connection, query): cursor = connection.cursor() cursor.execute(query) result = cursor.fetchall() return result ```
Резервное копирование и восстановление данных
Этот сценарий позволяет создавать резервные копии базы данных и восстанавливать их при необходимости. Это мера предосторожности, позволяющая защитить ценные данные от случайной потери.
``` import shutil def backup_database(database_path, backup_directory): shutil.copy(database_path, backup_directory) def restore_database(backup_path, database_directory): shutil.copy(backup_path, database_directory) ```
7. Автоматизация социальных сетей
Размещение информации в Twitter и Facebook
``` # Python script to automate posting on Twitter and Facebook from twython import Twython import facebook def post_to_twitter(api_key, api_secret, access_token, access_token_secret, message): twitter = Twython(api_key, api_secret, access_token, access_token_secret) twitter.update_status(status=message) def post_to_facebook(api_key, api_secret, access_token, message): graph = facebook.GraphAPI(access_token) graph.put_object(parent_object='me', connection_name='feed', message=message) ```
Скрипт на Python с использованием библиотек Twython и facebook-sdk для автоматизации публикации в Twitter и Facebook. С его помощью вы можетепубликовать контент в ваших профилях социальных сетей.
Шеринг в соцсетях
Этот скрипт позволяет автоматизировать обмен случайным контентом в Twitter и Facebook. Вы можете настроить его таким образом, чтобы он получал контент из списка или базы данных и периодически делился им в социальных сетях.
``` # Python script to automatically share content on social media platforms import random def get_random_content(): # Your code here to retrieve random content from a list or database pass def post_random_content_to_twitter(api_key, api_secret, access_token, access_token_secret): content = get_random_content() post_to_twitter(api_key, api_secret, access_token, access_token_secret, content) def post_random_content_to_facebook(api_key, api_secret, access_token): content = get_random_content() post_to_facebook(api_key, api_secret, access_token, content) ```
Скрапинг данных из соцсетей
Этот сценарий выполняет веб-скрапинг для извлечения данных с платформ социальных сетей. Он получает содержимое указанного URL-адреса, а затем использует такие методы, как BeautifulSoup, для разбора HTML и извлечения нужных данных.
``` # Python script for scraping data from social media platforms import requests def scrape_social_media_data(url): response = requests.get(url) # Your code here to extract relevant data from the response ```
8. Автоматизация системных задач
Управление системными процессами
Этот скрипт на Python использует библиотеку psutil для управления системными процессами. Он позволяет получить список запущенных процессов и убить конкретный процесс по его имени.
``` # Python script to manage system processes import psutil def get_running_processes(): return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])] def kill_process_by_name(process_name): for p in psutil.process_iter(['pid', 'name', 'username']): if p.info['name'] == process_name: p.kill() ```
Планирование задач с помощью Cron
В этом коде для планирования задач с помощью синтаксиса cron используется библиотека crontab. Это позволяет автоматизировать выполнение определенных команд через регулярные интервалы или в определенное время.
``` # Python script to schedule tasks using cron syntax from crontab import CronTab def schedule_task(command, schedule): cron = CronTab(user=True) job = cron.new(command=command) job.setall(schedule) cron.write() ```
Мониторинг дискового пространства
Этот код отслеживает доступное дисковое пространство в системе и отправляет предупреждение, если оно опускается ниже заданного порога. Он полезен для проактивного управления дисковым пространством и предотвращения возможной потери данных из-за нехватки места на диске.
``` # Python script to monitor disk space and send an alert if it's low import psutil def check_disk_space(minimum_threshold_gb): disk = psutil.disk_usage('/') free_space_gb = disk.free / (230) # Convert bytes to GB if free_space_gb < minimum_threshold_gb: # Your code here to send an alert (email, notification, etc.) pass ```
9. Автоматизация редактирования изображений
Изменение размеров и обрезка изображений
Этот сценарий использует библиотеку Python Imaging Library (PIL) для изменения размеров и обрезки изображений. Он может быть полезен при подготовке изображений для различных разрешений дисплея или для конкретных случаев использования.
``` # Python script to resize and crop images from PIL import Image def resize_image(input_path, output_path, width, height): image = Image.open(input_path) resized_image = image.resize((width, height), Image.ANTIALIAS) resized_image.save(output_path) def crop_image(input_path, output_path, left, top, right, bottom): image = Image.open(input_path) cropped_image = image.crop((left, top, right, bottom)) cropped_image.save(output_path) ```
Добавление водяных знаков к изображениям
``` # Python script to add watermarks to images from PIL import Image from PIL import ImageDraw from PIL import ImageFont def add_watermark(input_path, output_path, watermark_text): image = Image.open(input_path) draw = ImageDraw.Draw(image) font = ImageFont.truetype('arial.ttf', 36) draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font) image.save(output_path) ```
Этот код добавляет водяной знак на изображение. Вы можете настроить текст, шрифт и положение водяного знака для персонализации ваших изображений.
Создание эскизов изображений
Этот сценарий на языке Python создает уменьшенные изображения из исходных, что может быть полезно для создания изображений предварительного просмотра или уменьшения размера изображений для ускорения загрузки на сайтах.
``` # Python script to create image thumbnails from PIL import Image def create_thumbnail(input_path, output_path, size=(128, 128)): image = Image.open(input_path) image.thumbnail(size) image.save(output_path) ```
10. Автоматизация сети
Проверка состояния сайта
Этот Python-сценарий проверяет состояние сайта, посылая HTTP GET-запрос на указанный URL. С его помощью можно отслеживать доступность сайтов и коды их ответов.
``` # Python script to check the status of a website import requests def check_website_status(url): response = requests.get(url) if response.status_code == 200: # Your code here to handle a successful response else: # Your code here to handle an unsuccessful response ```
Автоматизация FTP-передач
Этот скрипт на Python автоматизирует передачу файлов по протоколу FTP. Он подключается к FTP-серверу, входит в систему с указанными учетными данными и загружает локальный файл в указанное удаленное место.
``` # Python script to automate FTP file transfers from ftplib import FTP def ftp_file_transfer(host, username, password, local_file_path, remote_file_path): with FTP(host) as ftp: ftp.login(user=username, passwd=password) with open(local_file_path, 'rb') as f: ftp.storbinary(f'STOR {remote_file_path}', f) ```
Конфигурация сетевых устройств
Этот сценарий на языке Python использует библиотеку netmiko для автоматизации настройки сетевых устройств, таких как маршрутизаторы и коммутаторы Cisco. Вы можете задать список команд конфигурации, и сценарий выполнит их на целевом устройстве.
``` # Python script to automate network device configuration from netmiko import ConnectHandler def configure_network_device(host, username, password, configuration_commands): device = { 'device_type': 'cisco_ios', 'host': host, 'username': username, 'password': password, } with ConnectHandler(device) as net_connect: net_connect.send_config_set(configuration_commands) ```
11. Очистка и преобразование данных
Удаление дубликатов из данных
# Python script to remove duplicates from data import pandas as pd def remove_duplicates(data_frame): cleaned_data = data_frame.drop_duplicates() return cleaned_data ```
Этот сценарий на языке Python использует pandas для удаления дубликатов строк из набора данных. Это простой, но эффективный способ обеспечить целостность данных и улучшить их анализ.
Нормализация данных
Этот код нормализует данные с помощью метода min-max нормализации. Он приводит значения в наборе данных к диапазону от 0 до 1, что облегчает сравнение различных характеристик.
``` # Python script for data normalization import pandas as pd def normalize_data(data_frame): normalized_data = (data_frame - data_frame.min()) / (data_frame.max() - data_frame.min()) return normalized_data ```
Работа с пропущенными значениями
Этот сценарий на языке Python использует pandas для обработки пропущенных значений в наборе данных. Он заполняет пропущенные значения предыдущим не пропущенным значением, используя метод прямого заполнения.
``` # Python script to handle missing values in data import pandas as pd def handle_missing_values(data_frame): filled_data = data_frame.fillna(method='ffill') return filled_data ```
12. Автоматизация операций с PDF-файлами
Извлечение текста из PDF-файлов
Скрипт, извлекающий текст из PDF-файлов с помощью библиотеки PyPDF2. Он считывает каждую страницу PDF-файла и компилирует извлеченный текст в одну строку.
``` # Python script to extract text from PDFs import PyPDF2 def extract_text_from_pdf(file_path): with open(file_path, 'rb') as f: pdf_reader = PyPDF2.PdfFileReader(f) text = '' for page_num in range(pdf_reader.numPages): page = pdf_reader.getPage(page_num) text += page.extractText() return text ```
Объединение нескольких PDF-файлов
Этот скрипт на Python объединяет несколько PDF-файлов в один PDF-документ. Он удобен для объединения отдельных PDF-отчетов, презентаций или других документов в один целостный файл.
``` # Python script to merge multiple PDFs into a single PDF import PyPDF2 def merge_pdfs(input_paths, output_path): pdf_merger = PyPDF2.PdfMerger() for path in input_paths: with open(path, 'rb') as f: pdf_merger.append(f) with open(output_path, 'wb') as f: pdf_merger.write(f) ```
Добавление парольной защиты
Код для добавления парольной защиты к PDF-файлу. Он шифрует PDF-файл с помощью пароля, обеспечивая доступ к содержимому только тем, кто имеет правильный пароль.
``` # Python script to add password protection to a PDF import PyPDF2 def add_password_protection(input_path, output_path, password): with open(input_path, 'rb') as f: pdf_reader = PyPDF2.PdfFileReader(f) pdf_writer = PyPDF2.PdfFileWriter() for page_num in range(pdf_reader.numPages): page = pdf_reader.getPage(page_num) pdf_writer.addPage(page) pdf_writer.encrypt(password) with open(output_path, 'wb') as output_file: pdf_writer.write(output_file) ```
13. Автоматизация графического интерфейса
Автоматизация работы мыши и клавиатуры
Этот скрипт на Python использует библиотеку pyautogui для автоматизации задач графического интерфейса, имитируя движения мыши, щелчки и ввод с клавиатуры. Он может взаимодействовать с элементами GUI и выполнять такие действия, как нажатие кнопок, ввод текста или навигация по меню.
``` # Python script for GUI automation using pyautogui import pyautogui def automate_gui(): # Your code here for GUI automation using pyautogui pass ```
Создание простых приложений с графическим интерфейсом
Этот сценарий на языке Python использует библиотеку tkinter для создания простых графических интерфейсов пользователя. Вы можете создавать окна, кнопки, текстовые поля и другие элементы GUI для создания интерактивных приложений.
``` # Python script to create simple GUI applications using tkinter import tkinter as tk def create_simple_gui(): # Your code here to define the GUI elements and behavior pass
Работа с событиями GUI
Этот скрипт демонстрирует, как обрабатывать события графического интерфейса с помощью tkinter. Он создает виджет кнопки и определяет функцию обратного вызова, которая будет выполняться при нажатии на кнопку.
``` # Python script to handle GUI events using tkinter import tkinter as tk def handle_gui_events(): def on_button_click(): # Your code here to handle button click event pass root = tk.Tk() button = tk.Button(root, text="Click Me", command=on_button_click) button.pack() root.mainloop() ```
14. Автоматизация тестирования
Модульное тестирование на Python
Этот скрипт на Python использует модуль unittest для выполнения модульного тестирования. Он включает в себя тест-кейсы для функции add
, проверяющие ее поведение с положительными, отрицательными и нулевыми числами.
``` # Python script for unit testing with the unittest module import unittest def add(a, b): return a + b class TestAddFunction(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2 , 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_add_zero(self): self.assertEqual(add(5, 0), 5) if __name__ == '__main__': unittest.main() ```
Selenium для веб-тестирования
Этот скрипт использует библиотеку Selenium для автоматизации веб-тестирования. Он запускает браузер, переходит по указанному URL-адресу и взаимодействует с веб-элементами для проверки функциональности веб-страницы.
``` # Python script for web testing using Selenium from selenium import webdriver def perform_web_test(): driver = webdriver.Chrome() driver.get("https://www.example.com") # Your code here to interact with web elements and perform tests driver.quit() ```
15. Автоматизация облачных сервисов
Этот сценарий Python использует библиотеку Boto3 для взаимодействия с Amazon Web Services (AWS) и создания экземпляра EC2. Он может быть расширен для выполнения широкого спектра задач, таких как создание ведер S3, управление ролями IAM или запуск функций Lambda.
``` # Python script to manage AWS resources using Boto3 import boto3 def create_ec2_instance(instance_type, image_id, key_name, security_group_ids): ec2 = boto3.resource('ec2') instance = ec2.create_instances( ImageId=image_id, InstanceType=instance_type, KeyName=key_name, SecurityGroupIds=security_group_ids, MinCount=1, MaxCount=1 ) return instance[0].id ```
16. Обработка естественного языка
Этот сценарий на языке Python использует библиотеку NLTK для анализа настроения текстовых данных. Он вычисляет оценку настроения, указывающую на позитивность, нейтральность или негативность предоставленного текста.
``` # Python script for sentiment analysis using NLTK or other NLP libraries import nltk from nltk.sentiment import SentimentIntensityAnalyzer def analyze_sentiment(text): nltk.download('vader_lexicon') sia = SentimentIntensityAnalyzer() sentiment_score = sia.polarity_scores(text) return sentiment_score ```
Заключение
В этой статье мы рассмотрели скрипты на Python для автоматизации различных задач в разных областях. Универсальность Python позволяет эффективно автоматизировать широкий спектр процессов – от веб-скреппинга и автоматизации работы сети до машинного обучения и управления IoT-устройствами.
Автоматизация не только экономит время и силы, но и снижает риск ошибок и повышает общую производительность. Настраивая и развивая эти сценарии, вы можете создавать индивидуальные решения по автоматизации, отвечающие вашим специфическим потребностям.
Так зачем же ждать? Начните автоматизировать свою работу с помощью Python уже сегодня и ощутите силу оптимизированных процессов и повышения эффективности.
Перевод статьи «20 Best Python Scripts to Automate Your Work».
за такое форматирование кода надо ебальники бить автору
Совсем обленился, возми и отформатируй, секундное дело. Не надо забывать за прилёт обратным курсом с жесткой посадкой в щи.