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

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

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

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

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

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

    ▍1、Jpg 转 Png

    图片格式转换,以前小 F 可能第一时间想到的是【格式工厂】这个软件。

    如今编写一个 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()

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

    10个有趣的Python高级脚本 - 图1

    ▍4、解压文件

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

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

    ▍5、Excel 工作表合并

    帮助你将 Excel 工作表合并到一张表上,表内容如下图。

    10个有趣的Python高级脚本 - 图2

    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)

    结果如下。

    10个有趣的Python高级脚本 - 图3

    ▍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, (7, 7), 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()

    原图如下。

    10个有趣的Python高级脚本 - 图4

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

    10个有趣的Python高级脚本 - 图5

    ▍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 文档的内容如下,包含了一个表格。

    10个有趣的Python高级脚本 - 图6

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

    10个有趣的Python高级脚本 - 图7

    ▍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 = "mussage"
    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'))

    https://zhuanlan.zhihu.com/p/529599071