作为程序员,每天都很多问题须要编码来解决,有些问题仅通过 Python 的规范库并不能轻松解决,本文明天分享一些高频问题的解决方案,能够作为一个手边的工具箱,你能够先珍藏备用。
1、测网速,抉择最佳服务器
这个脚本能够测试上传、下载速度,也提供了函数 get_best_server 来抉择最佳服务器,在客户端和多服务器模式中十分实用。
脚本:
# pip install pyspeedtest# pip install speedtest# pip install speedtest-cli#办法1import speedtestspeedTest = speedtest.Speedtest() print(speedTest.get_best_server())#查看下载速度 print(speedTest.download())#查看上传速度print(speedTest.upload())#办法2import pyspeedtestst = pyspeedtest.SpeedTest()st.ping()st.download()st.upload()
2、应用 google 搜寻关键词
有时候为了疏导用户应用搜索引擎,咱们能够间接将谬误关键词用 google 搜寻下,将结果显示在界面上,这样用户能够间接点击链接来查看搜寻后果,很不便,不须要再复制关键词,关上浏览器搜素等一系列麻烦。
#pip install googlefrom googlesearch import searchquery = "somenzz"for url in search(query): print(url)
print 的后果就是 google 搜寻后果的 url 列表,相似的,百度和 bing 也应该有对应的库,你能够搜寻以下。
3、Web 机器人
这个咱之前曾经分享过了,selenium 和 playwright 都能够,我集体更喜爱 playwright
selenium 示例代码:
# pip install seleniumimport timefrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysbot = 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 installfrom playwright.sync_api import sync_playwrightwith sync_playwright() as p: browser = p.chromium.launch() page = browser.new_page() page.goto("http://playwright.dev") print(page.title()) browser.close()
前文:
- Python自动化办公-主动录入表单数据
- 微软开源的浏览器自动化工具-Playwright
4、获取图片的 exif 信息
有两种办法获取,一个是应用 pillow,一个是应用 exifread:
# Get Exif of Photo# Method 1# pip install pillowimport PIL.Imageimport PIL.ExifTagsimg = 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 ExifReadimport exifreadfilename = open(path_name, 'rb')tags = exifread.process_file(filename)print(tags)
如果查找并删除 exif 信息,能够看下前文Python自动化办公-玩转图片 中的第三小结-3、删除图片的元数据。
5、OCR
OCR 的全称是 Optical Character Recognition,即光学字符识别,艰深点讲就是文字辨认,这里有个很简略的脚本,实用于 Windows,不过须要你在 GitHub 上下载 tesseract.exe[1]。
# pip install pytesseractimport pytesseractfrom PIL import Imagepytesseract.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、将照片转换为卡通图片
# pip install opencv-pythonimport cv2img = 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 是零碎回收站在每一个磁盘上的链接文件夹,用于保留磁盘上删除的文件或者文件夹信息,是零碎重要的暗藏文件;默认状况下,会占用用户设置过的磁盘的容量,因而,用户清空回收站之后不会开释空间。
# pip install winshellimport winshelltry: winshell.recycle_bin().empty(confirm=False, show_progress=False, sound=True) print("Recycle bin 已本清空")except: print("Recycle bin 是空文件")
8、pdf 转图片
将 pdf 文件转成多个图片
import fitzpdf = '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 转 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、查看网站是否下线
咱们能够通过 http 的状态码判断一个网站的服务是否失常运行。
# pip install requests# 办法 1import urllib.requestfrom urllib.request import Request, urlopenreq = Request('https://somenzz.cn', headers={'User-Agent': 'Mozilla/5.0'})webpage = urlopen(req).getcode()print(webpage) # 200# 办法 2import requestsr = requests.get("https://somenzz.cn")print(r.status_code) # 200
最初的话
本文分享了 10 日常实用的小脚本,心愿能抛砖引玉,基于此你能够写出更好用更弱小的程序,如果有所帮忙,还请点个赞