分享 10 個日常使用的腳本
作為程序員,每天都很多問題需要編碼來解決,有些問題僅通過 Python 的標(biāo)準(zhǔn)庫并不能輕松解決,本文今天分享一些高頻問題的解決方案,可以作為一個手邊的工具箱,你可以先收藏備用。
1、測網(wǎng)速,選擇最佳服務(wù)器
這個腳本可以測試上傳、下載速度,也提供了函數(shù) get_best_server 來選擇最佳服務(wù)器,在客戶端和多服務(wù)器模式中非常實用。
腳本:
#?pip?install?pyspeedtest
#?pip?install?speedtest
#?pip?install?speedtest-cli
#方法1
import?speedtest
speedTest?=?speedtest.Speedtest()?
print(speedTest.get_best_server())
#檢查下載速度?
print(speedTest.download())
#檢查上傳速度
print(speedTest.upload())
#方法2
import?pyspeedtest
st?=?pyspeedtest.SpeedTest()
st.ping()
st.download()
st.upload()
2、使用 google 搜索關(guān)鍵詞
有時候為了引導(dǎo)用戶使用搜索引擎,我們可以直接將錯誤關(guān)鍵詞用 google 搜索下,將結(jié)果顯示在界面上,這樣用戶可以直接點擊鏈接來查看搜索結(jié)果,很方便,不需要再復(fù)制關(guān)鍵詞,打開瀏覽器搜素等一系列麻煩。
#pip?install?google
from?googlesearch?import?search
query?=?"somenzz"
for?url?in?search(query):
????print(url)
print 的結(jié)果就是 google 搜索結(jié)果的 url 列表,類似的,百度和 bing 也應(yīng)該有對應(yīng)的庫,你可以搜索以下。
3、Web 機器人
這個咱之前已經(jīng)分享過了,selenium 和 playwright 都可以,我個人更喜歡 playwright
selenium 示例代碼:
#?pip?install?selenium
import?time
from?selenium?import?webdriver
from?selenium.webdriver.common.keys?import?Keys
bot?=?webdriver.Chrome("chromedriver.exe")
bot.get('http://www.google.com')
search?=?bot.find_element_by_name('q')
search.send_keys("somenzz")
search.send_keys(Keys.RETURN)
time.sleep(5)
bot.quit()
playwright 示例代碼:
#pip?install?playwright
#playwright?install
from?playwright.sync_api?import?sync_playwright
with?sync_playwright()?as?p:
????browser?=?p.chromium.launch()
????page?=?browser.new_page()
????page.goto("http://playwright.dev")
????print(page.title())
????browser.close()
前文:
4、獲取圖片的 exif 信息
有兩種方法獲取,一個是使用 pillow,一個是使用 exifread:
#?Get?Exif?of?Photo
#?Method?1
#?pip?install?pillow
import?PIL.Image
import?PIL.ExifTags
img?=?PIL.Image.open("Img.jpg")
exif_data?=?
{
????PIL.ExifTags.TAGS[i]:?j
????for?i,?j?in?img._getexif().items()
????if?i?in?PIL.ExifTags.TAGS
}
print(exif_data)
#?Method?2
#?pip?install?ExifRead
import?exifread
filename?=?open(path_name,?'rb')
tags?=?exifread.process_file(filename)
print(tags)
如果查找并刪除 exif 信息,可以看下前文Python自動化辦公-玩轉(zhuǎn)圖片 中的第三小結(jié)-3、刪除圖片的元數(shù)據(jù)。
5、OCR
OCR 的全稱是 Optical Character Recognition,即光學(xué)字符識別,通俗點講就是文字識別,這里有個很簡單的腳本,適用于 Windows,不過需要你在 GitHub 上下載 tesseract.exe[1]。
#?pip?install?pytesseract
import?pytesseract
from?PIL?import?Image
pytesseract.pytesseract.tesseract_cmd?=?r'C:\Program?Files\Tesseract-OCR\tesseract.exe'
t=Image.open("img.png")
text?=?pytesseract.image_to_string(t,?config='')
print(text)
6、將照片轉(zhuǎn)換為卡通圖片
#?pip?install?opencv-python
import?cv2
img?=?cv2.imread('img.jpg')
grayimg?=?cv2.cvtColor(img,?cv2.COLOR_BGR2GRAY)
grayimg??=?cv2.medianBlur(grayimg,?5)
edges?=?cv2.Laplacian(grayimg?,?cv2.CV_8U,?ksize=5)
r,mask?=cv2.threshold(edges,100,255,cv2.THRESH_BINARY_INV)
img2?=?cv2.bitwise_and(img,?img,?mask=mask)
img2?=?cv2.medianBlur(img2,?5)
cv2.imwrite("cartooned.jpg",?mask)
對比下就是這樣:

7、清空 recycle.bin
recycle.bin 是系統(tǒng)回收站在每一個磁盤上的鏈接文件夾,用于保存磁盤上刪除的文件或者文件夾信息,是系統(tǒng)重要的隱藏文件;默認(rèn)情況下,會占用用戶設(shè)置過的磁盤的容量,因此,用戶清空回收站之后不會釋放空間。
#?pip?install?winshell
import?winshell
try:
????winshell.recycle_bin().empty(confirm=False,?show_progress=False,?sound=True)
????print("Recycle?bin?已本清空")
except:
????print("Recycle?bin?是空文件")
8、pdf 轉(zhuǎn)圖片
將 pdf 文件轉(zhuǎn)成多個圖片
import?fitz
pdf?=?'sample_pdf.pdf'
doc?=?fitz.open(pdf)
?
for?page?in?doc:
????pix?=?page.getPixmap(alpha=False)
????pix.writePNG('page-%i.png'?%?page.number)
9、Hex 轉(zhuǎn) RGB
def?Hex_to_Rgb(hex):
????h?=?hex.lstrip('#')
????return?tuple(int(h[i:i+2],?16)?for?i?in?(0,?2,?4))
print(Hex_to_Rgb('#c96d9d'))??#?(201,?109,?157)
print(Hex_to_Rgb('#fa0515'))?#?(250,?5,?21)
10、檢查網(wǎng)站是否下線
我們可以通過 http 的狀態(tài)碼判斷一個網(wǎng)站的服務(wù)是否正常運行。
#?pip?install?requests
#?方法?1
import?urllib.request
from?urllib.request?import?Request,?urlopen
req?=?Request('https://somenzz.cn',?headers={'User-Agent':?'Mozilla/5.0'})
webpage?=?urlopen(req).getcode()
print(webpage)?#?200
#?方法?2
import?requests
r?=?requests.get("https://somenzz.cn")
print(r.status_code)?#?200
最后的話
本文分享了 10 日常實用的小腳本,希望能拋磚引玉,基于此你可以寫出更好用更強大的程序,如果有所幫助,還請點個贊,也可以留言互動。
推薦閱讀:
Python 標(biāo)準(zhǔn)庫中最有用的裝飾器
參考資料
tesseract.exe: https://tesseract-ocr.github.io/tessdoc/Downloads.html
