盘点十个超级好用的高级Python脚本
作者:程序员老华 发布时间:2023-12-04 23:41:27
在日常的生活和工作中,我们经常会遇到一些大小问题,其中有很多的问题,都是可以使用一些简单的Python代码就能解决。
比如不久前的复旦大佬,用130行Python代码硬核搞定核酸统计,大大提升了效率,节省了不少时间。
今天,就带大家学习一下10个Python脚本程序。
虽然简单,不过还是蛮有用的。
有兴趣的可以自己去实现,找到对自己有帮助的技巧。
1、Jpg转Png
图片格式转换,以前小F可能第一时间想到的是【格式工厂】这个软件。
如今编写一个Python脚本就能完成各种图片格式的转换,此处以jpg转成png为例。
有两种解决方法,都分享给大家。
# 图片格式转换, Jpg转Png
# 方法①
from PIL import Image
img = Image.open('test.jpg')
img.save('test1.png')
# 方法②
from cv2 import imread, imwrite
image = imread("test.jpg", 1)
imwrite("test2.png", image)
2、PDF加密和解密
如果你有100个或更多的PDF文件需要加密,手动进行加密肯定是不可行的,极其浪费时间。
使用Python的pikepdf模块,即可对文件进行加密,写一个循环就能进行批量加密文档。
# PDF加密
import pikepdf
pdf = pikepdf.open("test.pdf")
pdf.save('encrypt.pdf', encryption=pikepdf.Encryption(owner="your_password", user="your_password", R=4))
pdf.close()
有加密那么便会有解密,代码如下。
# PDF解密
import pikepdf
pdf = pikepdf.open("encrypt.pdf", password='your_password')
pdf.save("decrypt.pdf")
pdf.close()
3、获取电脑的配置信息
很多小伙伴可能会使用鲁大师来看自己的电脑配置,这样还需要下载一个软件。
使用Python的WMI模块,便可以轻松查看你的电脑信息。
# 获取计算机信息
import wmi
def System_spec():
Pc = wmi.WMI()
os_info = Pc.Win32_OperatingSystem()[0]
processor = Pc.Win32_Processor()[0]
Gpu = Pc.Win32_VideoController()[0]
os_name = os_info.Name.encode('utf-8').split(b'|')[0]
ram = float(os_info.TotalVisibleMemorySize) / 1048576
print(f'操作系统: {os_name}')
print(f'CPU: {processor.Name}')
print(f'内存: {ram} GB')
print(f'显卡: {Gpu.Name}')
print("\n计算机信息如上 ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑")
System_spec()
就以小F自己的电脑为例,运行代码就能看到配置。
4、解压文件
使用zipfile模块进行文件解压,同理也可以对文件进行压缩。
# 解压文件
from zipfile import ZipFile
unzip = ZipFile("file.zip", "r")
unzip.extractall("output Folder")
5、Excel工作表合并
帮助你将Excel工作表合并到一张表上,表内容如下图。
6张表,其余表的内容和第一张表都一样。
设置表格数量为5,将会合并前5张表的内容。
import pandas as pd
# 文件名
filename = "test.xlsx"
# 表格数量
T_sheets = 5
df = []
for i in range(1, T_sheets+1):
sheet_data = pd.read_excel(filename, sheet_name=i, header=None)
df.append(sheet_data)
# 合并表格
output = "merged.xlsx"
df = pd.concat(df)
df.to_excel(output)
结果如下。
6、将图像转换为素描图
和之前的图片格式转换有点类似,就是对图像进行处理。
以前大家可能会使用到美图秀秀,现在可能就是抖音的滤镜了。
其实使用Python的OpenCV,就能够快速实现很多你想要的效果。
# 图像转换
import cv2
# 读取图片
img = cv2.imread("img.jpg")
# 灰度
grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
invert = cv2.bitwise_not(grey)
# 高斯滤波
blur_img = cv2.GaussianBlur(invert, (7, 7), 0)
inverse_blur = cv2.bitwise_not(blur_img)
sketch_img = cv2.divide(grey, inverse_blur, scale=256.0)
# 保存
cv2.imwrite('sketch.jpg', sketch_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
7、获取CPU温度
有了这个Python脚本,你将不需要任何软件来了解CPU的温度。
# 获取CPU温度
from time import sleep
from pyspectator.processor import Cpu
cpu = Cpu(monitoring_latency=1)
with cpu:
while True:
print(f'Temp: {cpu.temperature} °C')
sleep(2)
8、提取PDF表格
有的时候,我们需要从PDF中提取表格数据。
第一时间你可能会先想到手工整理,但是当工作量特别大,手工可能就比较费劲。
然后你可能会想到一些软件和网络工具来提取 PDF 表格。
下面这个简单的脚本将帮助你在一秒钟内完成相同的操作。
# 方法①
import camelot
tables = camelot.read_pdf("tables.pdf")
print(tables)
tables.export("extracted.csv", f="csv", compress=True)
# 方法②, 需要安装Java8
import tabula
tabula.read_pdf("tables.pdf", pages="all")
tabula.convert_into("table.pdf", "output.csv", output_format="csv", pages="all")
PDF文档的内容如下,包含了一个表格。
提取到的CSV文件内容如下。
9、截图
该脚本将简单地截取屏幕截图,而无需使用任何屏幕截图软件。
在下面的代码中,给大家展示了两种Python截取屏幕截图的方法。
# 方法①from mss import msswith mss() as screenshot: screenshot.shot(output='scr.png')# 方法②import PIL.ImageGrabscr = PIL.ImageGrab.grab()scr.save("scr.png")# 方法①
from mss import mss
with mss() as screenshot:
screenshot.shot(output='scr.png')
# 方法②
import PIL.ImageGrab
scr = PIL.ImageGrab.grab()
scr.save("scr.png")
10、拼写检查器
这个Python脚本可以进行拼写检查,当然只对英文有效,毕竟中文博大精深呐。
# 拼写检查
# 方法①
import textblob
text = "mussage"
print("original text: " + str(text))
checked = textblob.TextBlob(text)
print("corrected text: " + str(checked.correct()))
# 方法②
import autocorrect
spell = autocorrect.Speller(lang='en')
# 以英语为例
print(spell('cmputr'))
print(spell('watr'))
print(spell('survice'))
来源:https://blog.csdn.net/m0_72557783/article/details/125685101


猜你喜欢
- 本文实例讲述了Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作。分享给大家供大家参考,具体如下:Thinkph
- 前提1. Cookie 是脆弱的。cookie 容易被窃取和受到垮站脚本的攻击,我们必须接受 cookie 是不安全的。2. 持久化登录 c
- 简介这篇文章的初衷是很多文章都告诉你最左匹配原则,却没有告诉你,实际场景下它到底是如何工作的,本文就是为了阐述清这个问题。准备为了方面后续的
- 前言为了体现不加索引和添加索引的区别,需要使用百万级的数据,但是百万数据的表,如果使用一条条添加,特别繁琐又麻烦,这里使用存储过程快速添加数
- 什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性)面向对象编程(Object-oriented Programming,
- 项目有时要用一些Ajax的效果,因为比较简单,也就没有去用什么Ajax.net之类的东西,手写代码也就实现了。、第二天,有人反馈错误;说是只
- 记得之前learn python一书里面,因为当时没有官方支持,只能通过hack的方式实现抽象方法,具体如下 最简单的写法class MyC
- 起因是因为公司要开发一款自动登录某网站的助手工具提供给客户使用,要使用到selenium,所以选择了pyqt5的方式来开发这个C/S架构的客
- 一、复习首先将上次画的矩形做复杂一些的小程序:import pygame,sys, randompygame.init()screen =
- 这是我上一篇关于安全的文章的其中一节。这是一个众所周知的事实,对你运行中的网站的MySQL数据库备份是极为重要的只需按照下面3步做,一切都在
- islower()方法判断检查字符串的所有的字符(字母)是否为小写。语法以下是islower()方法的语法:str.islowe
- 前记上一遍文章《Python中Async语法协程的实现》介绍了Python是如何以生成器来实现协程的以及Python Asyncio通过Fu
- 循环和列表不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。在使用f
- 大家都知道,IE中的现代事件绑定(attachEvent)与W3C标准的(addEventListener)相比存在很多问题,例如:内存泄漏
- GetRepeatTimes(TheChar,TheString) 得到一个字符串在另一个字符串当中出现几次的函数(新)如:response
- 修改数据库为多用户模式SQL语句修改数据位多用户模式如下:DECLARE @SQL VARCHAR(MAX); SET @SQL='
- 本文实例讲述了Python实现根据日期获取当天凌晨时间戳的方法。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-
- 前言因为工作中经常用到这些方法,所有便把这些方法进行了总结。JavaScript 1. type 类型判断isString (o) { //
- 首先是数据源:#需要求加权平均值的数据列表elements = []#对应的权值列表weights = []使用numpy直接求:impor
- 前言SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其