重復(fù)性的任務(wù)總是耗時(shí)且枯燥。想象一下一張一張地剪切100張照片,或者執(zhí)行諸如獲取API、糾正拼寫和語法等任務(wù),這些都需要大量時(shí)間。為什么不將它們自動(dòng)化呢?在今天的文章中,將分享10個(gè)解決重復(fù)任務(wù)的Python/ target=_blank class=infotextkey>Python自動(dòng)化腳本。
因此,請(qǐng)將本文加入收藏,以備將來參考。現(xiàn)在,跟隨本文開始吧。
01、圖像優(yōu)化器
這個(gè)優(yōu)秀的自動(dòng)化腳本可以幫助你更好地處理圖像,你可以像在Photoshop中一樣進(jìn)行編輯。
該腳本使用了流行的Pillow
模塊。
# 圖像優(yōu)化
# pip install Pillow
import PIL
# 裁剪
im = PIL.Image.open("Image1.jpg")
im = im.crop((34, 23, 100, 100))
# 調(diào)整大小
im = PIL.Image.open("Image1.jpg")
im = im.resize((50, 50))
# 翻轉(zhuǎn)
im = PIL.Image.open("Image1.jpg")
im = im.transpose(PIL.Image.FLIP_LEFT_RIGHT)
# 翻轉(zhuǎn)
im = PIL.Image.open("Image1.jpg")
im = im.rotate(360)
# 壓縮
im = PIL.Image.open("Image1.jpg")
im.save("Image1.jpg", optimize=True, quality=90)
# 縮小
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.BLUR)
# 銳化
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.SHARPEN)
# 設(shè)置亮度
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Brightness(im)
im = im.enhance(1.5)
# 設(shè)置對(duì)比度
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Contrast(im)
im = im.enhance(1.5)
# 添加濾鏡
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageOps.grayscale(im)
im = PIL.ImageOps.invert(im)
im = PIL.ImageOps.posterize(im, 4)
# 保存
im.save("Image1.jpg")
02、視頻優(yōu)化器
通過以下自動(dòng)化腳本,你不僅可以使用Python來優(yōu)化視頻,還可以使用它來優(yōu)化圖像。該腳本使用了Moviepy
模塊,允許進(jìn)行裁剪、添加音頻、設(shè)置視頻速度、添加視覺效果等操作。
# 視頻優(yōu)化器
# pip install moviepy
import moviepy.editor as pyedit
# 加載視頻
video = pyedit.VideoFileClip("vid.mp4")
# 修剪
vid1 = video.subclip(0, 10)
vid2 = video.subclip(20, 40)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 加速視頻
final_vid = final_vid.speedx(2)
# 為視頻添加音頻
aud = pyedit.AudioFileClip("bg.mp3")
final_vid = final_vid.set_audio(aud)
# 反轉(zhuǎn)視頻
final_vid = final_vid.fx(pyedit.vfx.time_mirror)
# 合并兩段視頻
vid1 = pyedit.VideoFileClip("vid1.mp4")
vid2 = pyedit.VideoFileClip("vid2.mp4")
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 為視頻添加特效
vid1 = final_vid.fx(pyedit.vfx.mirror_x)
vid2 = final_vid.fx(pyedit.vfx.invert_colors)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# 為視頻添加圖像
img1 = pyedit.ImageClip("img1.jpg")
img2 = pyedit.ImageClip("img2.jpg")
final_vid = pyedit.concatenate_videoclips([img1, img2])
# 保存視頻
final_vid.write_videofile("final.mp4")
03、將PDF轉(zhuǎn)換為圖像
這個(gè)小型自動(dòng)化腳本可以輕松地提取整個(gè)PDF頁面并將其轉(zhuǎn)換為圖像。該腳本使用了流行的PyMuPDF
模塊,以其PDF文本提取功能而聞名。
# 將PDF轉(zhuǎn)換為圖像
# pip install PyMuPDF
import fitz
def pdf_to_images(pdf_file):
doc = fitz.open(pdf_file)
for p in doc:
pix = p.get_pixmap()
output = f"page{p.number}.png"
pix.writePNG(output)
pdf_to_images("test.pdf")
04、獲取API數(shù)據(jù)
如果需要從數(shù)據(jù)庫中獲取API數(shù)據(jù)或需要向服務(wù)器發(fā)送API請(qǐng)求,那么這個(gè)自動(dòng)化腳本是一個(gè)方便的工具。使用Urllib3
模塊,可以進(jìn)行API請(qǐng)求的獲取和發(fā)送。
# pip install urllib3
import urllib3
# 獲取API數(shù)據(jù)
url = "https://api.Github.com/users/psf/repos"
http = urllib3.PoolManager()
response = http.request('GET', url)
print(response.status)
print(response.data)
# 發(fā)布API數(shù)據(jù)
url = "https://httpbin.org/post"
http = urllib3.PoolManager()
response = http.request('POST', url, fields={'hello': 'world'})
print(response.status)
05、電池指示燈
這個(gè)方便的腳本允許設(shè)置希望收到通知的電池百分比。該腳本使用Pyler
來進(jìn)行通知,并使用Psutil
來獲取當(dāng)前電池電量百分比。
# 電池通知器
# pip instal plyer
from plyer import notification
import psutil
from time import sleep
while True:
battery = psutil.sensors_battery()
life = battery.percent
if life < 50:
notification.notify(
title = "Battery Low",
message = "Please connect to power source",
timeout = 10
)
sleep(60)
06、語法修正器
厭倦了校對(duì)長篇文章或文本嗎?那么,你可以嘗試這個(gè)自動(dòng)化腳本,它可以掃描你的文本并糾正語法錯(cuò)誤。這個(gè)優(yōu)秀的腳本使用了HApptransformer
模塊,這是一個(gè)經(jīng)過訓(xùn)練的機(jī)器學(xué)習(xí)模塊,用于修正文本中的語法錯(cuò)誤。
# 語法修正器
# pip install happytransformer
from happytransformer import HappyTextToText as HappyTTT
from happytransformer import TTSettings
def Grammer_Fixer(Text):
Grammer = HappyTTT("T5","prithivida/grammar_error_correcter_v1")
config = TTSettings(do_sample=True, top_k=10, max_length=100)
corrected = Grammer.generate_text(Text, args=config)
print("Corrected Text: ", corrected.text)
Text = "This is smple tet we how know this"
Grammer_Fixer(Text)
07、拼寫糾正
這個(gè)很棒的腳本可以幫助你糾正文本中的拼寫錯(cuò)誤。可以在下面找到這個(gè)腳本,它將告訴你如何修正句子中的單個(gè)或多個(gè)單詞。
# 拼寫修正器
# pip install textblob
from textblob import *
# 修正段落拼寫
def fix_paragraph_words(paragraph):
sentence = TextBlob(paragraph)
correction = sentence.correct()
print(correction)
# 修復(fù)單詞拼寫錯(cuò)誤
def fix_word_spell(word):
word = Word(word)
correction = word.correct()
print(correction)
fix_paragraph_words("This is sammple tet!!")
fix_word_spell("maangoo")
08、互聯(lián)網(wǎng)下載器
你可能會(huì)使用下載軟件從互聯(lián)網(wǎng)上下載照片或視頻,但現(xiàn)在你可以使用Python IDM
模塊創(chuàng)建自己的下載器。
# Python下載器
# pip install inte.NETdownloadmanager
import internetdownloadmanager as idm
def Downloader(url, output):
pydownloader = idm.Downloader(worker=20,
part_size=1024*1024*10,
resumable=True,)
pydownloader .download(url, output)
Downloader("Link url", "image.jpg")
Downloader("Link url", "video.mp4")
09、獲取世界新聞
使用這個(gè)自動(dòng)化腳本,可以隨時(shí)了解每天的世界新聞,無論是哪個(gè)國家/地區(qū)的,或是任何語言的。這個(gè)API允許每天免費(fèi)獲取50篇新聞文章。
# 世界新聞獲取器
# pip install requests
import requests
ApiKey = "YOUR_API_KEY"
url = "https://api.worldnewsapi.com/search-news?text=hurricane&api-key={ApiKey}"
headers = {
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
print("News: ", response.json())
10、PySide2 GUI
這個(gè)自動(dòng)化腳本將幫助你使用PySide2 Gui
模塊創(chuàng)建GUI應(yīng)用程序。可以在下面找到開始開發(fā)現(xiàn)代應(yīng)用程序前端所需的所有方法。
# PySide 2
# pip install PySide2
from PySide6.QtWidgets import *
from PySide6.QtGui import *
import sys
app = QApplication(sys.argv)
window = QWidget()
# 調(diào)整窗口大小
window.resize(500, 500)
# 設(shè)置窗口標(biāo)題
window.setWindowTitle("PySide2 Window")
# 添加按鈕
button = QPushButton("Click Me", window)
button.move(200, 200)
# 添加標(biāo)簽文本
label = QLabel("Hello Medium", window)
label.move(200, 150)
# 添加輸入框
input_box = QLineEdit(window)
input_box.move(200, 250)
print(input_box.text())
# 添加單選按鈕
radio_button = QRadioButton("Radio Button", window)
radio_button.move(200, 300)
# 添加復(fù)選框
checkbox = QCheckBox("Checkbox", window)
checkbox.move(200, 350)
# 添加滑塊
slider = QSlider(window)
slider.move(200, 400)
# 添加進(jìn)度條
progress_bar = QProgressBar(window)
progress_bar.move(200, 450)
# 添加圖像
image = QLabel(window)
image.setPixmap(QPixmap("image.png"))
# 添加消息框
msg = QMessageBox(window)
msg.setText("Message Box")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
window.show()
sys.exit(app.exec())