10個Python腳本來自動化你的日常任務(wù)
在這個自動化時代,我們有很多重復(fù)無聊的工作要做。想想這些你不再需要一次又一次地做的無聊的事情,讓它自動化,讓你的生活更輕松。那么在本文中,我將向您介紹 10 個 Python 自動化腳本,以使你的工作更加自動化,生活更加輕松。因此,沒有更多的重復(fù)任務(wù)將這篇文章放在您的列表中,讓我們開始吧。
01、解析和提取 HTML
此自動化腳本將幫助你從網(wǎng)頁 URL 中提取 HTML,然后還為你提供可用于解析 HTML 以獲取數(shù)據(jù)的功能。這個很棒的腳本對于網(wǎng)絡(luò)爬蟲和那些想要解析 HTML 以獲取重要數(shù)據(jù)的人來說是一種很好的享受。
#?Parse?and?Extract?HTML
#?pip?install?gazpacho
import?gazpacho
#?Extract?HTML?from?URL
url?=?'https://www.example.com/'
html?=?gazpacho.get(url)
print(html)
#?Extract?HTML?with?Headers
headers?=?{'User-Agent':?'Mozilla/5.0'}
html?=?gazpacho.get(url,?headers=headers)
print(html)
#?Parse?HTML
parse?=?gazpacho.Soup(html)
#?Find?single?tags
tag1?=?parse.find('h1')
tag2?=?parse.find('span')
#?Find?multiple?tags
tags1?=?parse.find_all('p')
tags2?=?parse.find_all('a')
#?Find?tags?by?class
tag?=?parse.find('.class')
#?Find?tags?by?Attribute
tag?=?parse.find("div",?attrs={"class":?"test"})
#?Extract?text?from?tags
text?=?parse.find('h1').text
text?=?parse.find_all('p')[0].text
02、二維碼掃描儀
擁有大量二維碼圖像或只想掃描二維碼圖像,那么此自動化腳本將幫助你。該腳本使用 Qrtools 模塊,使你能夠以編程方式掃描 QR 圖像。
#?Qrcode?Scanner
#?pip?install?qrtools
from?qrtools?import?Qr
def?Scan_Qr(qr_img):
????qr?=?Qr()
????qr.decode(qr_img)
????print(qr.data)
????return?qr.data
????
print("Your?Qr?Code?is:?",?Scan_Qr("qr.png"))
03、截圖
現(xiàn)在,你可以使用下面這個很棒的腳本以編程方式截取屏幕截圖。使用此腳本,你可以直接截屏或截取特定區(qū)域的屏幕截圖。
#?Grab?Screenshot
#?pip?install?pyautogui
#?pip?install?Pillow
from?pyautogui?import?screenshot
import?time
from?PIL?import?ImageGrab
#?Grab?Screenshot?of?Screen
def?grab_screenshot():
????shot?=?screenshot()
????shot.save('my_screenshot.png')
????
#?Grab?Screenshot?of?Specific?Area
def?grab_screenshot_area():
????area?=?(0,?0,?500,?500)
????shot?=?ImageGrab.grab(area)
????shot.save('my_screenshot_area.png')
????
#?Grab?Screenshot?with?Delay
def?grab_screenshot_delay():
????time.sleep(5)
????shot?=?screenshot()
????shot.save('my_screenshot_delay.png')
04、創(chuàng)建有聲讀物
厭倦了手動將您的 PDF 書籍轉(zhuǎn)換為有聲讀物,那么這是你的自動化腳本,它使用 GTTS 模塊將你的 PDF 文本轉(zhuǎn)換為音頻。
#?Create?Audiobooks
#?pip?install?gTTS
#?pip?install?PyPDF2
from?PyPDF2?import?PdfFileReader?as?reader
from?gtts?import?gTTS
def?create_audio(pdf_file):
????read_Pdf?=?reader(open(pdf_file,?'rb'))
????for?page?in?range(read_Pdf.numPages):
????????text?=?read_Pdf.getPage(page).extractText()
????????tts?=?gTTS(text,?lang='en')
????????tts.save('page'?+?str(page)?+?'.mp3')
????????
create_audio('book.pdf')
05、PDF 編輯器
使用以下自動化腳本使用 Python 編輯 PDF 文件。該腳本使用 PyPDF4 模塊,它是 PyPDF2 的升級版本,下面我編寫了 Parse Text、Remove pages 等常用功能。當(dāng)你有大量 PDF 文件要編輯或需要以編程方式在 Python 項(xiàng)目中使用腳本時,這是一個方便的腳本。
#?PDF?Editor
#?pip?install?PyPDf4
import?PyPDF4
#?Parse?the?Text?from?PDF
def?parse_text(pdf_file):
????reader?=?PyPDF4.PdfFileReader(pdf_file)
????for?page?in?reader.pages:
????????print(page.extractText())
????????
#?Remove?Page?from?PDF
def?remove_page(pdf_file,?page_numbers):
????filer?=?PyPDF4.PdfReader('source.pdf',?'rb')
????out?=?PyPDF4.PdfWriter()
????for?index?in?page_numbers:
????????page?=?filer.pages[index]?
????????out.add_page(page)
with?open('rm.pdf',?'wb')?as?f:
????????out.write(f)
????????
#?Add?Blank?Page?to?PDF
def?add_page(pdf_file,?page_number):
????reader?=?PyPDF4.PdfFileReader(pdf_file)
????writer?=?PyPDF4.PdfWriter()
????writer.addPage()
????with?open('add.pdf',?'wb')?as?f:
????????writer.write(f)
????????
#?Rotate?Pages
def?rotate_page(pdf_file):
????reader?=?PyPDF4.PdfFileReader(pdf_file)
????writer?=?PyPDF4.PdfWriter()
????for?page?in?reader.pages:
????????page.rotateClockwise(90)
????????writer.addPage(page)
????with?open('rotate.pdf',?'wb')?as?f:
????????writer.write(f)
????????
#?Merge?PDFs
def?merge_pdfs(pdf_file1,?pdf_file2):
????pdf1?=?PyPDF4.PdfFileReader(pdf_file1)
????pdf2?=?PyPDF4.PdfFileReader(pdf_file2)
????writer?=?PyPDF4.PdfWriter()
????for?page?in?pdf1.pages:
????????writer.addPage(page)
????for?page?in?pdf2.pages:
????????writer.addPage(page)
????with?open('merge.pdf',?'wb')?as?f:
????????writer.write(f)
06、迷你 Stackoverflow
作為一名程序員,我知道我們每天都需要 StackOverflow,但你不再需要在 Google 上搜索它。現(xiàn)在,在您繼續(xù)處理項(xiàng)目的同時,在你的 CMD 中獲得直接解決方案。通過使用 Howdoi 模塊,你可以在命令提示符或終端中獲得 StackOverflow 解決方案。你可以在下面找到一些可以嘗試的示例。
#?Automate?Stackoverflow
#?pip?install?howdoi
#?Get?Answers?in?CMD
#example?1
>?howdoi?how?do?i?install?python3
#?example?2
>?howdoi?selenium?Enter?keys
#?example?3
>?howdoi?how?to?install?modules
#?example?4
>?howdoi?Parse?html?with?python
#?example?5
>?howdoi?int?not?iterable?error
#?example?6
>?howdoi?how?to?parse?pdf?with?python
#?example?7
>?howdoi?Sort?list?in?python
#?example?8
>?howdoi?merge?two?lists?in?python
#?example?9
>howdoi?get?last?element?in?list?python
#?example?10
>?howdoi?fast?way?to?sort?list
07、自動化手機(jī)
此自動化腳本將幫助你使用 Python 中的 Android 調(diào)試橋 (ADB) 自動化你的智能手機(jī)。下面我將展示如何自動執(zhí)行常見任務(wù),例如滑動手勢、呼叫、發(fā)送短信等等。您可以了解有關(guān) ADB 的更多信息,并探索更多令人興奮的方法來實(shí)現(xiàn)手機(jī)自動化,讓您的生活更輕松。
#?Automate?Mobile?Phones
#?pip?install?opencv-python
import?subprocess
def?main_adb(cm):
????p?=?subprocess.Popen(cm.split('?'),?stdout=subprocess.PIPE,?shell=True)
????(output,?_)?=?p.communicate()
????return?output.decode('utf-8')
????
#?Swipe?
def?swipe(x1,?y1,?x2,?y2,?duration):
????cmd?=?'adb?shell?input?swipe?{}?{}?{}?{}?{}'.format(x1,?y1,?x2,?y2,?duration)
????return?main_adb(cmd)
????
#?Tap?or?Clicking
def?tap(x,?y):
????cmd?=?'adb?shell?input?tap?{}?{}'.format(x,?y)
????return?main_adb(cmd)
????
#?Make?a?Call
def?make_call(number):
????cmd?=?f"adb?shell?am?start?-a?android.intent.action.CALL?-d?tel:{number}"
????return?main_adb(cmd)
????
#?Send?SMS
def?send_sms(number,?message):
????cmd?=?'adb?shell?am?start?-a?android.intent.action.SENDTO?-d??sms:{}?--es?sms_body?"{}"'.format(number,?message)
????return?main_adb(cmd)
????
#?Download?File?From?Mobile?to?PC
def?download_file(file_name):
????cmd?=?'adb?pull?/sdcard/{}'.format(file_name)
????return?main_adb(cmd)
????
#?Take?a?screenshot
def?screenshot():
????cmd?=?'adb?shell?screencap?-p'
????return?main_adb(cmd)
????
#?Power?On?and?Off
def?power_off():
????cmd?=?'"adb?shell?input?keyevent?26"'
????return?main_adb(cmd)
08、監(jiān)控 CPU/GPU 溫度
你可能使用 CPU-Z 或任何規(guī)格監(jiān)控軟件來捕獲你的 Cpu 和 Gpu 溫度,但你也可以通過編程方式進(jìn)行。好吧,這個腳本使用 Pythonnet 和 OpenhardwareMonitor 來幫助你監(jiān)控當(dāng)前的 Cpu 和 Gpu 溫度。你可以使用它在達(dá)到一定溫度時通知自己,也可以在 Python 項(xiàng)目中使用它來簡化日常生活。
#?Get?CPU/GPU?Temperature
#?pip?install?pythonnet
import?clr
clr.AddReference("OpenHardwareMonitorLib")
from?OpenHardwareMonitorLib?import?*
spec?=?Computer()
spec.GPUEnabled?=?True
spec.CPUEnabled?=?True
spec.Open()
#?Get?CPU?Temp
def?Cpu_Temp():
????while?True:
????????for?cpu?in?range(0,?len(spec.Hardware[0].Sensors)):
????????????if?"/temperature"?in?str(spec.Hardware[0].Sensors[cpu].Identifier):
????????????????print(str(spec.Hardware[0].Sensors[cpu].Value))
????????????????
#?Get?GPU?Temp
def?Gpu_Temp()
????while?True:
????????for?gpu?in?range(0,?len(spec.Hardware[0].Sensors)):
????????????if?"/temperature"?in?str(spec.Hardware[0].Sensors[gpu].Identifier):
????????????????print(str(spec.Hardware[0].Sensors[gpu].Value))
09、Instagram 上傳機(jī)器人
Instagram 是一個著名的社交媒體平臺,你現(xiàn)在不需要通過智能手機(jī)上傳照片或視頻。你可以使用以下腳本以編程方式執(zhí)行此操作。
#?Upload?Photos?and?Video?on?Insta
#?pip?install?instabot
from?instabot?import?Bot
def?Upload_Photo(img):
????robot?=?Bot()
????robot.login(user)
????robot.upload_photo(img,?caption="Medium?Article")
????print("Photo?Uploaded")
????
def?Upload_Video(video):
????robot?=?Bot()
????robot.login(user)
????robot.upload_video(video,?caption="Medium?Article")
????print("Video?Uploaded")
????
def?Upload_Story(img):
????robot?=?Bot()
????robot.login(user)
????robot.upload_story(img,?caption="Medium?Article")
????print("Story?Photos?Uploaded")
????
Upload_Photo("img.jpg")
Upload_Video("video.mp4")
10、視頻水印
使用此自動化腳本為你的視頻添加水印,該腳本使用 Moviepy,這是一個方便的視頻編輯模塊。在下面的腳本中,你可以看到如何添加水印并且可以自由使用它。
#?Video?Watermark?with?Python
#?pip?install?moviepy
from?moviepy.editor?import?*
clip?=?VideoFileClip("myvideo.mp4",?audio=True)?
width,height?=?clip.size??
text?=?TextClip("WaterMark",?font='Arial',?color='white',?fontsize=28)
set_color?=?text.on_color(size=(clip.w?+?text.w,?text.h-10),?color=(0,0,0),?pos=(6,'center'),?col_opacity=0.6)
set_textPos?=?set_color.set_pos(?lambda?pos:?(max(width/30,int(width-0.5*?width*?pos)),max(5*height/6,int(100*?pos)))?)
Output?=?CompositeVideoClip([clip,?set_textPos])
Output.duration?=?clip.duration
Output.write_videofile("output.mp4",?fps=30,?codec='libx264')
鏈接:https://mp.weixin.qq.com/s/V1b-CQvfmdxhOZ3dZj1Lvw
(版權(quán)歸原作者所有,侵刪)