2022年 11月 3日

十个Python实用脚本,快用起来

在日常的工作中,我们总会面临到各式各样的问题。

其中不少的问题,使用一些简单的Python代码就能解决。

不久前的复旦大佬,用130行Python代码硬核搞定核酸统计,大大提升了效率,节省了不少时间。

今天,就带大家学习一下10个Python脚本程序。

虽然简单,不过还是蛮有用的。

有兴趣的可以自己去实现,找到对自己有帮助的技巧。

1、jpg转png

编写一个Python脚本就能完成各种图片格式的转换,此处以jpg转成png为例。

有两种解决方法,都分享给大家。

  1. # 图片格式转换, jpg转png
  2. # 方法一
  3. from PIL import Image
  4. img = Image.open('test.jpg')
  5. img.save('test1.png')
  6. # 方法二
  7. from cv2 import imread, imwrite
  8. image = imread("test.jpg"1)
  9. imwrite("test2.png", image)

2、PDF加密和解密

如果你有100个或更多的PDF文件需要加密,手动进行加密肯定是不可行的,极其浪费时间。

使用Python的pikepdf模块,即可对文件进行加密,写一个循环就能进行批量加密文档。

  1. # PDF加密
  2. import pikepdf
  3. pdf = pikepdf.open("test.pdf")
  4. pdf.save('encrypt.pdf', encryption=pikepdf.Encryption(owner="your_password", user="your_password", R=4))
  5. pdf.close()

有加密那么便会有解密,代码如下。

  1. # PDF解密
  2. import pikepdf
  3. pdf = pikepdf.open("encrypt.pdf",  password='your_password')
  4. pdf.save("decrypt.pdf")
  5. pdf.close()

3、获取电脑的配置信息

很多小伙伴可能会使用鲁大师来看自己的电脑配置,这样还需要下载一个软件。

使用Python的WMI模块,便可以轻松查看你的电脑信息。

  1. # 获取计算机信息
  2. import wmi
  3. def System_spec():
  4.     Pc = wmi.WMI()
  5.     os_info = Pc.Win32_OperatingSystem()[0]
  6.     processor = Pc.Win32_Processor()[0]
  7.     Gpu = Pc.Win32_VideoController()[0]
  8.     os_name = os_info.Name.encode('utf-8').split(b'|')[0]
  9.     ram = float(os_info.TotalVisibleMemorySize) / 1048576
  10.     print(f'操作系统: {os_name}')
  11.     print(f'CPU: {processor.Name}')
  12.     print(f'内存: {ram} GB')
  13.     print(f'显卡: {Gpu.Name}')
  14.     print("\n计算机信息如上 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑")
  15. System_spec()

就以自己的电脑为例,运行代码就能看到配置。

4、解压文件

使用zipfile模块进行文件解压,同理也可以对文件进行压缩。

  1. # 解压文件
  2. from zipfile import ZipFile
  3. unzip = ZipFile("file.zip""r")
  4. unzip.extractall("output Folder")

5、Excel工作表合并

帮助你将Excel工作表合并到一张表上

6张表,其余表的内容和第一张表都一样。

设置表格数量为5,将会合并前5张表的内容。

  1. import pandas as pd
  2. # 文件名
  3. filename = "test.xlsx"
  4. # 表格数量
  5. T_sheets = 5
  6. df = []
  7. for i in range(1, T_sheets+1):
  8.     sheet_data = pd.read_excel(filename, sheet_name=i, header=None)
  9.     df.append(sheet_data)
  10. # 合并表格
  11. output = "merged.xlsx"
  12. df = pd.concat(df)
  13. df.to_excel(output)

6、将图像转换为素描图

和之前的图片格式转换有点类似,就是对图像进行处理。

以前大家可能会使用到美图秀秀,现在可能就是抖音的滤镜了。

其实使用Python的OpenCV,就能够快速实现很多你想要的效果。

  1. # 图像转换
  2. import cv2
  3. # 读取图片
  4. img = cv2.imread("img.jpg")
  5. # 灰度
  6. grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  7. invert = cv2.bitwise_not(grey)
  8. # 高斯滤波
  9. blur_img = cv2.GaussianBlur(invert, (77), 0)
  10. inverse_blur = cv2.bitwise_not(blur_img)
  11. sketch_img = cv2.divide(grey, inverse_blur, scale=256.0)
  12. # 保存
  13. cv2.imwrite('sketch.jpg', sketch_img)
  14. cv2.waitKey(0)
  15. cv2.destroyAllWindows()

原图如下。

素描图如下,还挺好看的。

有些不明显的需要自己调参一下

7、获取CPU温度

有了这个Python脚本,你将不需要任何软件来了解CPU的温度。

  1. # 获取CPU温度
  2. from time import sleep
  3. from pyspectator.processor import Cpu
  4. cpu = Cpu(monitoring_latency=1)
  5. with cpu:
  6.     while True:
  7.         print(f'Temp: {cpu.temperature} °C')
  8.         sleep(2)

 

8、提取PDF表格

有的时候,我们需要从PDF中提取表格数据。

第一时间你可能会先想到手工整理,但是当工作量特别大,手工可能就比较费劲。

然后你可能会想到一些软件和网络工具来提取 PDF 表格。

下面这个简单的脚本将帮助你在一秒钟内完成相同的操作。

  1. # 方法一
  2. import camelot
  3. tables = camelot.read_pdf("tables.pdf")
  4. print(tables)
  5. tables.export("extracted.csv", f="csv", compress=True)
  6. # 方法二, 需要安装Java8
  7. import tabula
  8. tabula.read_pdf("tables.pdf", pages="all")
  9. tabula.convert_into("table.pdf""output.csv", output_format="csv", pages="all")

PDF文档的内容如下,包含了一个表格。

提取到的CSV文件内容如下。

9、截图

该脚本将简单地截取屏幕截图,而无需使用任何屏幕截图软件。

在下面的代码中,给大家展示了两种Python截取屏幕截图的方法。

  1. # 方法一
  2. from mss import mss
  3. with mss() as screenshot:
  4.     screenshot.shot(output='scr.png')
  5. # 方法二
  6. import PIL.ImageGrab
  7. scr = PIL.ImageGrab.grab()
  8. scr.save("scr.png")

10、拼写检查器

这个Python脚本可以进行拼写检查,当然只对英文有效,毕竟中文博大精深呐。

  1. # 拼写检查
  2. # 方法一
  3. import textblob
  4. text = "meassage"
  5. print("original text: " + str(text))
  6. checked = textblob.TextBlob(text)
  7. print("corrected text: " + str(checked.correct()))
  8. # 方法二
  9. import autocorrect
  10. spell = autocorrect.Speller(lang='en')
  11. # 以英语为例
  12. print(spell('cmputr'))
  13. print(spell('watr'))
  14. print(spell('survice'))

万水千山总是情,点个 👍 行不行