10 個殺手級的 Python 自動化腳本
重復性任務總是耗時且無聊,想一想你想要一張一張地裁剪 100 張照片或 Fetch API、糾正拼寫和語法等工作,所有這些任務都很耗時,為什么不自動化它們呢?在今天的文章中,我將與你分享 10 個 Python [自動化腳本]。
所以,請你把這篇文章放在你的收藏清單上,以備不時之需,在 IT 行業里,程序員的學習永無止境……
01、 圖片優化器
使用這個很棒的自動化腳本,可以幫助把[圖像處理]的更好,你可以像在 Photoshop 中一樣編輯它們。
該腳本使用流行的是 Pillow 模塊,你可以在下面找到優化圖像所需的大部分方法。
-
在你的圖像編輯項目中使用 -
在你的 Python 項目中使用它 -
批量圖像編輯
更多
#?Image?Optimizing
#?pip?install?Pillow
import?PIL
#?Croping?
im?=?PIL.Image.open("Image1.jpg")
im?=?im.crop((34,?23,?100,?100))
#?Resizing
im?=?PIL.Image.open("Image1.jpg")
im?=?im.resize((50,?50))
#?Flipping
im?=?PIL.Image.open("Image1.jpg")
im?=?im.transpose(PIL.Image.FLIP_LEFT_RIGHT)
#?Rotating
im?=?PIL.Image.open("Image1.jpg")
im?=?im.rotate(360)
#?Compressing
im?=?PIL.Image.open("Image1.jpg")
im.save("Image1.jpg",?optimize=True,?quality=90)
#?Bluring
im?=?PIL.Image.open("Image1.jpg")
im?=?im.filter(PIL.ImageFilter.BLUR)
#?Sharpening
im?=?PIL.Image.open("Image1.jpg")
im?=?im.filter(PIL.ImageFilter.SHARPEN)
#?Set?Brightness
im?=?PIL.Image.open("Image1.jpg")
im?=?PIL.ImageEnhance.Brightness(im)
im?=?im.enhance(1.5)
#?Set?Contrast
im?=?PIL.Image.open("Image1.jpg")
im?=?PIL.ImageEnhance.Contrast(im)
im?=?im.enhance(1.5)
#?Adding?Filters
im?=?PIL.Image.open("Image1.jpg")
im?=?PIL.ImageOps.grayscale(im)
im?=?PIL.ImageOps.invert(im)
im?=?PIL.ImageOps.posterize(im,?4)
#?Saving
im.save("Image1.jpg")
02、視頻優化器
通過使用以下自動化腳本,你不僅可以使用 Python 來優化視頻,還可以使用它來優化圖像。該腳本使用 Moviepy 模塊,允許你修剪、添加音頻、設置視頻速度、添加 VFX 等等。
-
創建完整的視頻編輯器 -
在你的 Python 項目中使用 -
修剪視頻 -
從圖像制作視頻
#?Video?Optimizer
#?pip?install?moviepy
import?moviepy.editor?as?pyedit
#?Load?the?Video
video?=?pyedit.VideoFileClip("vid.mp4")
#?Trimming
vid1?=?video.subclip(0,?10)
vid2?=?video.subclip(20,?40)
final_vid?=?pyedit.concatenate_videoclips([vid1,?vid2])
#?Speed?up?the?video
final_vid?=?final_vid.speedx(2)
#?Adding?Audio?to?the?video
aud?=?pyedit.AudioFileClip("bg.mp3")
final_vid?=?final_vid.set_audio(aud)
#?Reverse?the?Video
final_vid?=?final_vid.fx(pyedit.vfx.time_mirror)
#?Merge?two?videos
vid1?=?pyedit.VideoFileClip("vid1.mp4")
vid2?=?pyedit.VideoFileClip("vid2.mp4")
final_vid?=?pyedit.concatenate_videoclips([vid1,?vid2])
#?Add?VFX?to?Video
vid1?=?final_vid.fx(pyedit.vfx.mirror_x)
vid2?=?final_vid.fx(pyedit.vfx.invert_colors)
final_vid?=?pyedit.concatenate_videoclips([vid1,?vid2])
#?Add?Images?to?Video
img1?=?pyedit.ImageClip("img1.jpg")
img2?=?pyedit.ImageClip("img2.jpg")
final_vid?=?pyedit.concatenate_videoclips([img1,?img2])
#?Save?the?video
final_vid.write_videofile("final.mp4")
03、PDF 轉圖片
這個小型自動化腳本可以方便地獲取整個 PDF 頁面并將它們轉換為圖像。該腳本使用流行的 PyMuPDF 模塊,該模塊以其 PDF 文本提取而聞名。
-
在你的 PDF 項目中使用它 -
批量 PDF 到圖像
更多
#?PDF?to?Images
#?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 數據
需要從數據庫中獲取 API 數據或需要向服務器發送 API 請求。那么這個自動化腳本對你來說是一個方便的工具。使用 Urllib3 模塊,可讓你獲取和發布 API 請求。
#?pip?install?urllib3
import?urllib3
#?Fetch?API?data
url?=?"https://api.github.com/users/psf/repos"
http?=?urllib3.PoolManager()
response?=?http.request('GET',?url)
print(response.status)
print(response.data)
#?Post?API?data
url?=?"https://httpbin.org/post"
http?=?urllib3.PoolManager()
response?=?http.request('POST',?url,?fields={'hello':?'world'})
print(response.status)
05、電池指示燈
這個方便的腳本可以讓你設置你想要得到通知的電池百分比,該腳本使用 Pyler 進行通知,使用 Psutil 獲取當前的電池百分比。
#?Battery?Notifier
#?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、語法固定器
厭倦了校對你的長文章或文本,然后,你可以試試這個自動化腳本,它將掃描你的文本并糾正語法錯誤,這個很棒的腳本使用 Happtransformer 模塊,這是一個機器學習模塊,經過訓練可以修復文本中的語法錯誤。
#?Grammer?Fixer
#?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、拼寫修正
這個很棒的腳本將幫助你糾正你的文本單詞拼寫錯誤。你可以在下面找到腳本,將告訴你如何修復句子中的單個單詞或多個單詞。
#?Spell?Fixer
#?pip?install?textblob
from?textblob?import?*
#?Fixing?Paragraph?Spells
def?fix_paragraph_words(paragraph):
????sentence?=?TextBlob(paragraph)
????correction?=?sentence.correct()
????print(correction)
#?Fixing?Words?Spells
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、互聯網下載器
你們可能使用下載軟件從 Internet 下載照片或視頻,但現在你可以使用 Python IDM 模塊創建自己的下載器。
-
下載 Google 相冊 -
在你的項目中使用 -
下載視頻和音樂
更多
#?Python?Downloader
#?pip?install?internetdownloadmanager
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、獲取世界新聞
使用此自動化腳本讓你隨時了解每日世界新聞,你可以使用任何語言從任何國家 / 地區獲取新聞。這個 API 讓你每天免費獲取 50 篇新聞文章。
#?World?News?Fetcher
#?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
這個自動化腳本將幫助你使用 PySide2 Gui 模塊創建你的 GUI 應用程序。你可以在下面找到開始開發體面的現代應用程序所需的每種方法。
PySide2 還支持跨平臺,對開發人員非常友好,請查看下面的代碼。
#?PySide?2?
#?pip?install?PySide2
from?PySide6.QtWidgets?import?*
from?PySide6.QtGui?import?*
import?sys
app?=?QApplication(sys.argv)
window?=?QWidget()
#?Resize?the?Window
window.resize(500,?500)
#?Set?the?Window?Title
window.setWindowTitle("PySide2?Window")
#?Add?Buttons
button?=?QPushButton("Click?Me",?window)
button.move(200,?200)
#?Add?Label?Text
label?=?QLabel("Hello?Medium",?window)
label.move(200,?150)
#?Add?Input?Box
input_box?=?QLineEdit(window)
input_box.move(200,?250)
print(input_box.text())
#?Add?Radio?Buttons
radio_button?=?QRadioButton("Radio?Button",?window)
radio_button.move(200,?300)
#?Add?Checkbox
checkbox?=?QCheckBox("Checkbox",?window)
checkbox.move(200,?350)
#?Add?Slider
slider?=?QSlider(window)
slider.move(200,?400)
#?Add?Progress?Bar
progress_bar?=?QProgressBar(window)
progress_bar.move(200,?450)
#?Add?Image?
image?=?QLabel(window)
image.setPixmap(QPixmap("image.png"))
#?Add?Message?Box
msg?=?QMessageBox(window)
msg.setText("Message?Box")
msg.setStandardButtons(QMessageBox.Ok?|?QMessageBox.Cancel)
window.show()
sys.exit(app.exec())
轉載:入門小站 版權歸原作者所有,侵刪