分享十個(gè)日常使用的腳本,你會(huì)了嗎?
作為程序員,每天都很多問(wèn)題需要編碼來(lái)解決,有些問(wèn)題僅通過(guò) Python 的標(biāo)準(zhǔn)庫(kù)并不能輕松解決,本文今天分享一些高頻問(wèn)題的解決方案,可以作為一個(gè)手邊的工具箱,你可以先收藏備用。
1、測(cè)網(wǎng)速,選擇最佳服務(wù)器
這個(gè)腳本可以測(cè)試上傳、下載速度,也提供了函數(shù) get_best_server 來(lái)選擇最佳服務(wù)器,在客戶端和多服務(wù)器模式中非常實(shí)用。
腳本:
- # 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)鍵詞
有時(shí)候?yàn)榱艘龑?dǎo)用戶使用搜索引擎,我們可以直接將錯(cuò)誤關(guān)鍵詞用 google 搜索下,將結(jié)果顯示在界面上,這樣用戶可以直接點(diǎn)擊鏈接來(lái)查看搜索結(jié)果,很方便,不需要再?gòu)?fù)制關(guān)鍵詞,打開(kāi)瀏覽器搜素等一系列麻煩。
- #pip install google
 - from googlesearch import search
 - query = "somenzz"
 - for url in search(query):
 - print(url)
 
print 的結(jié)果就是 google 搜索結(jié)果的 url 列表,類似的,百度和 bing 也應(yīng)該有對(duì)應(yīng)的庫(kù),你可以搜索以下。
3、Web 機(jī)器人
這個(gè)咱之前已經(jīng)分享過(guò)了,selenium 和 playwright 都可以,我個(gè)人更喜歡 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 信息
有兩種方法獲取,一個(gè)是使用 pillow,一個(gè)是使用 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自動(dòng)化辦公-玩轉(zhuǎn)圖片 中的第三小結(jié)-3、刪除圖片的元數(shù)據(jù)。
5、OCR
OCR 的全稱是 Optical Character Recognition,即光學(xué)字符識(shí)別,通俗點(diǎn)講就是文字識(shí)別,這里有個(gè)很簡(jiǎn)單的腳本,適用于 Windows,不過(guò)需要你在 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)
 
對(duì)比下就是這樣:
7、清空 recycle.bin
recycle.bin 是系統(tǒng)回收站在每一個(gè)磁盤(pán)上的鏈接文件夾,用于保存磁盤(pán)上刪除的文件或者文件夾信息,是系統(tǒng)重要的隱藏文件;默認(rèn)情況下,會(huì)占用用戶設(shè)置過(guò)的磁盤(pán)的容量,因此,用戶清空回收站之后不會(huì)釋放空間。
- # 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)成多個(gè)圖片
- 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)站是否下線
我們可以通過(guò) http 的狀態(tài)碼判斷一個(gè)網(wǎng)站的服務(wù)是否正常運(yùn)行。
- # 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 日常實(shí)用的小腳本,希望能拋磚引玉,基于此你可以寫(xiě)出更好用更強(qiáng)大的程序!
本文轉(zhuǎn)載自微信公眾號(hào)「Python七號(hào)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python七號(hào)公眾號(hào)。


















 
 
 
















 
 
 
 