Сборник мини-проектов, которые автоматизируют ваши задачи

Автоматизируйте свои задачи, создав мини-проекты автоматизации, которые ставят повторяющиеся задачи и работают на автопилоте. В этой статье я покажу вам 10 мини-проектов автоматизации Python с кодом. Так что отметьте эту статью и давайте начнем.

Эпоха автоматизации станет эпохой «сделай сам».

— Маршалл Маклюэн

👉Отправитель электронной почты

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

# Send Email with Python 
# pip install yagmail
from yagmail import SMTP
def Email_Sender(subject, body):
    mail = SMTP(user='username', password='password')
    mail.send("[email protected]", subject = subject, contents = body)
    mail.close()
    print("Email Sent")
def Email_With_Attachment(subject, attachment):
    mail = SMTP(user='username', password='password')
    mail.send("[email protected]", subject = subject, attachments = attachment)
    print("Email Sent")
# main
Email_Sender("Subject101", "Hello from Medium")
Email_With_Attachment("Subject102",  ["img1.png", "img2.png"])

👉 PDF ​​в аудиокнигу

Вам нужно преобразовать ваш PDF-файл в аудиокнигу, тогда вот мини-проект, который использует преобразование текста в речь Google API и модуль PyPDF4 для преобразования всех страниц вашего PDF-файла в аудиокнигу. аудиокнига.

# PDF to Audiobook
# pip install PyPDF4
# pip install gTTS
from PyPDF4 import PdfFileReader
from gtts import gTTS
def Pdf_to_Audio(file_name):
    pdf = PdfFileReader(file_name)
    for page in range(pdf.getNumPages()):
        text = pdf.getPage(page).extractText()
        tts = gTTS(text=text, lang='en')
        tts.save(f"{page}.mp3")
Pdf_to_Audio("book.pdf")

👉 Погодное приложение

Этот мини-проект автоматизирует вашу задачу Прогнозирование погоды. Вы можете получить информацию о погоде, такую ​​как температура, влажность и т. д., используя приведенный ниже код проекта. Изучите API, чтобы улучшить свой проект или добавить новые функции.

# Weather App 
# Get Your Free API : http://openweathermap.org/appid
# pip install requests
import requests as req
from bs4 import BeautifulSoup as bs
def get_weather(loc):
    # Set API
    key = "Api key"
    api_url = f"http://api.openweathermap.org/data/2.5/weather?"
    params = f"q={loc}&appid={key}"
    
    # Get the response from the API
    url = api_url + params
    response = req.get(url)
    weather = response.json()
# Fetch Weather
    print(f"Weather for {loc}:")
    temp = weather['main']['temp']
    print("Temperature:", temp - 273.15, "Celsius")
    humidity = weather['main']['humidity']
    print("Humidity:", humidity, "%")
    wind = weather['wind']['speed']
    print("Wind speed:", wind, "m/s")
# main
get_weather('London')

👉 Загрузчик с ютуба

Создайте свой собственный загрузчик YouTube с помощью модуля Pytube. Ниже вы можете найти коды мини-проектов, которые загружают видео с URL-адресов YouTube в любом формате.

# Proofreading Tool
# pip install pytube
from pytube import YouTube
import os
def downloader(url):
    yt_vid = YouTube(url).streams.filter(progressive=True)
    yt_vid.order_by('resolution').desc().first().download()
    print("video downloaded")
downloader("youtube.com/watch?v=id")

👉 Ввод данных в Excel

Ввод данных всегда является дорогостоящей работой, но теперь вы можете автоматизировать ввод данных в Excel с помощью этого мини-проекта ниже. Он использует модуль Openpyxl, который позволяет писать и форматировать файл Excel с помощью нескольких строк кода.

# Excel Data Entry
# pip install openpyxl
from openpyxl import Workbook
from openpyxl.styles import *
# Set up workbook
book = Workbook("excel.xlsx")
pyexcel = book.active
# Set up header
pyexcel.append(["Name", "Job Desc", "Salary"])
# Write by rows
pyexcel.append(["John", "JS Programmer", "$100,000"])
pyexcel.append(["Jane", "Py Programmer", "$150,000"])
# Write by columns
pyexcel["A1"] = "John"
pyexcel["B1"] = "JS Programmer"
pyexcel["C1"] = "$100,000"
# Write by cell
pyexcel.cell(row=1, column=1).value = "John"
pyexcel.cell(row=1, column=2).value = "JS Programmer"
# Format cell
pyexcel.cell(row=1, column=1).font = Font(bold=True)
# save workbook
book.save("excel.xlsx")

👉 Вычитка Python

Хотите избавиться от грамматических и орфографических ошибок в тексте? Тогда попробуйте этот мини-проект, в котором используется модуль Lmproof. Вы можете изучить этот модуль, чтобы расширить функциональные возможности проекта.

# Python Proofreading
# pip install lmproof
import lmproof
def proofread(text):
    proofread = lmproof.load("en")
    correction = proofread.proofread(text)
    print("Original: {}".format(text))
    print("Correction: {}".format(correction))
proofread("Your Text")

👉 Сжимайте папки и файлы

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

# Compress folders and files
import zipfile as zf
import os
# compress files
def compress_files(files):
    with zf.ZipFile("compress", 'w') as myzip:
        for file in files:
            myzip.write(file)
# compress folders
def compress_folders(folders):
    with zf.ZipFile("compress", 'w') as myzip:
        for folder in folders:
            for root, dirs, files in os.walk(folder):
                for file in files:
                    myzip.write(os.path.join(root, file))
# main 
compress_files(["video1.mp4", "video2.mp4"])
compress_folders(["folder1", "folder2"])

👉 Тестер скорости Интернета

Проверьте скорость своего интернет-соединения и пинг с помощью API для тестирования скорости OOKLA. Этот мини-проект по автоматизации проверит вашу скорость загрузки и выгрузки, а также рассчитает пинг.

# Internet Speed tester
# pip install speedtest-cli
import speedtest as st
# Set Best Server
server = st.Speedtest()
server.get_best_server()
# Test Download Speed
down = server.download()
down = down / 1000000
print(f"Download Speed: {down} Mb/s")
# Test Upload Speed
up = server.upload()
up = up / 1000000
print(f"Upload Speed: {up} Mb/s")
# Test Ping
ping = server.results.ping
print(f"Ping Speed: {ping}")

👉 Веб-блокировщик

Создайте проект веб-блокировщика на Python, используя приведенный ниже проект автоматизации. В этом проекте используется хост-файл, содержащий IP-адрес и имя хоста веб-сайта. Если вы заблокируете веб-сайт с указанным ниже проектом, веб-сайт всегда будет перенаправлять на 127.0.0.1.

# Block Websites
import os
import sys
host = "C:\Windows\System32\drivers\etc\hosts"
def block_websites(websites):
    with open(host, "a") as f:
        f.write("\n127.0.0.1 " + websites)
        f.close()
def unblock_websites(website):
    with open(host, "r") as f:
        lines = f.readlines()
        f.close()
    with open(host, "w") as f:
        for line in lines:
            if websites not in line:
                f.write(line)
        f.close()
block_websites(["www.google.com", "www.medium.com"])

👉 Автоматизируйте рабочий стол и Интернет

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

# Automate Web and Desktop
# pip install selenium
# pip install webdrivermanager
# pip install pyautogui
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import pyautogui as pag
# <=== Automate Web ===> 
google = webdriver.Chrome(ChromeDriverManager().install())
# open webpage
google.get('https://www.google.com')
# Search element
search = google.find_element(By.NAME, 'q')
search = google.find_element(By.TAG_NAME, 'input')
search = google.find_element(By.ID, 'lst-ib')
search = google.find_element(By.CLASS_NAME, 'gsfi')
search = google.find_element(By.CSS_SELECTOR, 'input[name="q"]')
search = google.find_element(By.XPATH, '//input[id="lst-ib"]')
# Click on Element
search.click()
# Send Keys or Type
search.send_keys('Hello World')
search.send_keys(Keys.ENTER)
# <=== Automate Desktop ===>
# Mouse movement
pag.moveTo(5, 5)
pag.moveRel(5, 5)
pag.dragTo(5, 5)
# Mouse clicks
pag.click(5, 5)
pag.doubleClick(5, 5)
pag.rightClick(5, 5)
pag.scroll(5, 5, vertical=True)
# Keyboard Typing
pag.typewrite('Hello World', interval=0.25)
pag.press('enter')
pag.hotkey('ctrl', 'c')

👉 Заключительные мысли

Благодарим вас за потраченное драгоценное время на прочтение этой статьи. Я надеюсь, что вы найдете эту статью полезной и интересной для чтения. Если вам понравилась эта статья, поделитесь ❤️ ею со своими друзьями, потому что делиться — значит заботиться.

Счастливое программирование на Python

Стань участником среды, чтобы разблокировать все мои статьи и тысячи статей других авторов. Подпишитесь на членстводля носителя это всего стоит 5 долларов США, а также я получу небольшую часть, которую я использую для получения кофе.

Вы можете поддержать меня и других, став участником Medium Спасибо! 👇



Никогда не переставайте учиться. Вот ежедневная порция моих статей по программированию ниже, надеюсь, они вам тоже понравятся.





















































Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.