分享十个日常使用的脚本,你会了吗?
开发 前端
作为程序员,每天都很多问题需要编码来解决,有些问题仅通过 Python 的标准库并不能轻松解决,本文今天分享一些高频问题的解决方案,可以作为一个手边的工具箱,你可以先收藏备用。

作为程序员,每天都很多问题需要编码来解决,有些问题仅通过 Python 的标准库并不能轻松解决,本文今天分享一些高频问题的解决方案,可以作为一个手边的工具箱,你可以先收藏备用。

1、测网速,选择最佳服务器

这个脚本可以测试上传、下载速度,也提供了函数 get_best_server 来选择最佳服务器,在客户端和多服务器模式中非常实用。

脚本:

  1. # pip install pyspeedtest 
  2. # pip install speedtest 
  3. # pip install speedtest-cli 
  4. #方法1 
  5. import speedtest 
  6. speedTest = speedtest.Speedtest()  
  7. print(speedTest.get_best_server()) 
  8. #检查下载速度  
  9. print(speedTest.download()) 
  10. #检查上传速度 
  11. print(speedTest.upload()) 
  12. #方法2 
  13. import pyspeedtest 
  14. st = pyspeedtest.SpeedTest() 
  15. st.ping() 
  16. st.download() 
  17. st.upload() 

2、使用 google 搜索关键词

有时候为了引导用户使用搜索引擎,我们可以直接将错误关键词用 google 搜索下,将结果显示在界面上,这样用户可以直接点击链接来查看搜索结果,很方便,不需要再复制关键词,打开浏览器搜素等一系列麻烦。

  1. #pip install google 
  2. from googlesearch import search 
  3. query = "somenzz" 
  4.  
  5. for url in search(query): 
  6.     print(url) 

print 的结果就是 google 搜索结果的 url 列表,类似的,百度和 bing 也应该有对应的库,你可以搜索以下。

3、Web 机器人

这个咱之前已经分享过了,selenium 和 playwright 都可以,我个人更喜欢 playwright

selenium 示例代码:

  1. # pip install selenium 
  2. import time 
  3. from selenium import webdriver 
  4. from selenium.webdriver.common.keys import Keys 
  5. bot = webdriver.Chrome("chromedriver.exe"
  6. bot.get('http://www.google.com'
  7. search = bot.find_element_by_name('q'
  8. search.send_keys("somenzz"
  9. search.send_keys(Keys.RETURN
  10. time.sleep(5) 
  11. bot.quit() 

playwright 示例代码:

  1. #pip install playwright 
  2. #playwright install 
  3. from playwright.sync_api import sync_playwright 
  4.  
  5. with sync_playwright() as p: 
  6.     browser = p.chromium.launch() 
  7.     page = browser.new_page() 
  8.     page.goto("http://playwright.dev"
  9.     print(page.title()) 
  10.     browser.close() 

4、获取图片的 exif 信息

有两种方法获取,一个是使用 pillow,一个是使用 exifread:

  1. # Get Exif of Photo 
  2. # Method 1 
  3. # pip install pillow 
  4. import PIL.Image 
  5. import PIL.ExifTags 
  6. img = PIL.Image.open("Img.jpg"
  7. exif_data =  
  8.     PIL.ExifTags.TAGS[i]: j 
  9.     for i, j in img._getexif().items() 
  10.     if i in PIL.ExifTags.TAGS 
  11. print(exif_data) 
  12.  
  13. # Method 2 
  14. # pip install ExifRead 
  15. import exifread 
  16. filename = open(path_name, 'rb'
  17. tags = exifread.process_file(filename) 
  18. print(tags) 

如果查找并删除 exif 信息,可以看下前文Python自动化办公-玩转图片 中的第三小结-3、删除图片的元数据。

5、OCR

OCR 的全称是 Optical Character Recognition,即光学字符识别,通俗点讲就是文字识别,这里有个很简单的脚本,适用于 Windows,不过需要你在 GitHub 上下载 tesseract.exe[1]。

  1. # pip install pytesseract 
  2. import pytesseract 
  3. from PIL import Image 
  4.  
  5. pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' 
  6.  
  7. t=Image.open("img.png"
  8. text = pytesseract.image_to_string(t, config=''
  9. print(text) 

6、将照片转换为卡通图片

  1. # pip install opencv-python 
  2. import cv2 
  3.  
  4. img = cv2.imread('img.jpg'
  5. grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  6. grayimg  = cv2.medianBlur(grayimg, 5) 
  7.  
  8. edges = cv2.Laplacian(grayimg , cv2.CV_8U, ksize=5) 
  9. r,mask =cv2.threshold(edges,100,255,cv2.THRESH_BINARY_INV) 
  10. img2 = cv2.bitwise_and(img, img, mask=mask) 
  11. img2 = cv2.medianBlur(img2, 5) 
  12.  
  13. cv2.imwrite("cartooned.jpg", mask) 

对比下就是这样:

7、清空 recycle.bin

recycle.bin 是系统回收站在每一个磁盘上的链接文件夹,用于保存磁盘上删除的文件或者文件夹信息,是系统重要的隐藏文件;默认情况下,会占用用户设置过的磁盘的容量,因此,用户清空回收站之后不会释放空间。

  1. # pip install winshell 
  2. import winshell 
  3.  
  4. try: 
  5.     winshell.recycle_bin().empty(confirm=False, show_progress=False, sound=True
  6.     print("Recycle bin 已本清空"
  7. except
  8.     print("Recycle bin 是空文件"

8、pdf 转图片

将 pdf 文件转成多个图片

  1. import fitz 
  2. pdf = 'sample_pdf.pdf' 
  3. doc = fitz.open(pdf) 
  4.   
  5. for page in doc: 
  6.     pix = page.getPixmap(alpha=False
  7.     pix.writePNG('page-%i.png' % page.number) 

9、Hex 转 RGB

  1. def Hex_to_Rgb(hex): 
  2.     h = hex.lstrip('#'
  3.     return tuple(int(h[i:i+2], 16) for i in (0, 2, 4)) 
  4. print(Hex_to_Rgb('#c96d9d'))  # (201, 109, 157) 
  5. print(Hex_to_Rgb('#fa0515')) # (250, 5, 21) 

10、检查网站是否下线

我们可以通过 http 的状态码判断一个网站的服务是否正常运行。

  1. # pip install requests 
  2.  
  3. # 方法 1 
  4. import urllib.request 
  5. from urllib.request import Request, urlopen 
  6. req = Request('https://somenzz.cn', headers={'User-Agent''Mozilla/5.0'}) 
  7. webpage = urlopen(req).getcode() 
  8. print(webpage) # 200 
  9. # 方法 2 
  10. import requests 
  11. r = requests.get("https://somenzz.cn"
  12. print(r.status_code) # 200 

最后的话

本文分享了 10 日常实用的小脚本,希望能抛砖引玉,基于此你可以写出更好用更强大的程序!

本文转载自微信公众号「Python七号」,可以通过以下二维码关注。转载本文请联系Python七号公众号。

 

责任编辑:武晓燕 来源: Python七号

同话题下的热门内容

YouTube-DL 官网托管平台被三大唱片公司起诉Podman与Docker有什么不同?腾讯研发动画组件,以后动画制作用PAGRedis 使用 List 实现消息队列的利与弊面试突击:为什么HashMap会产生死循环? 2022 Web 前端面试题及答案之JavaScript 篇Three.js 的 3D 粒子动画:群星送福细说Java中的空指针异常

编辑推荐

太厉害了,终于有人能把TCP/IP协议讲的明明白白了!Javascript如何监听页面刷新和关闭事件利用Pytorch进行CNN详细剖析面试 | 必须要会的50个React面试题一份全面的React、Angular和Vue.js比较指南
我收藏的内容
点赞
收藏

51CTO技术栈视频号