10个有趣的 Python 高级脚本,建议收藏!

b8fc13f29c7816e0a8791d57e3c826f1.gif

作者 | 小F

来源 | 法纳斯特

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

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

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

今天,小F就带大家学习一下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()

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

67874f965edadf2b56be8ffbdb722f88.png

▍4、解压文件

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

# 解压文件
from zipfile import ZipFile

unzip = ZipFile("file.zip", "r")
unzip.extractall("output Folder")

▍5、Excel工作表合并

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

a9353a7d076e93a43383a36d3d9cf4cc.png

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)

结果如下。

ed139592eb8c18533738bde5f393ee36.png

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

原图如下。

21b50b5d099274f4ddd1dc6b322f1c59.png

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

a81ad594899b7d60508aeb472649d2c0.png

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

03e05e09d7b61eab849e7f830877df19.png

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

1ea3bbbca4db896ec354205b3a3f6107.png

▍9、截图

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

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

# 方法①
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'))

8918f3f35cde157d9f2d10d29d6572f0.gif

技术

强大的Gensim库用于NLP文本分析

资讯

何同学又上热搜了,这次为什么?

技术

手把手教你用Python绘制桑葚图!

技术

用Python打造一个语音合成系统

56168a03dad35c2f73d2216c47ff3075.png

分享

54c484726a22a1a1919927db0744b6f3.png

点收藏

9ca081ab6fc5253b97f8bf77ecaa2023.png

点点赞

b39cc08ca1f1f7f80e608d862ea0bca1.png

点在看

  • 6
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以为您编写一个简单的Python脚本来制作烟花的图案,它将绘制一个由烟花组成的圆形图案。 要创建这个脚本,您需要安装Python和一个可以绘制图形的库,比如matplotlib。 首先,使用matplotlib绘制一个圆形,然后在圆周上放置多个烟花。 为了使它更有趣,您还可以添加一些彩色的烟火效果。 ### 回答2: 烟花是大多数人喜爱的庆祝活动特色之一。我们可以用Python编写一个简单的烟花脚本,用于在终端上显示烟花效果。 首先,我们需要导入time和random模块以及sys模块。 import time import random import sys 然后,我们可以定义一个函数draw_fireworks,用于绘制烟花效果。在函数内部,我们使用循环来逐行绘制烟花的不同部分。我们可以使用"*"符号表示烟花的星星,"-"符号表示烟花的尾迹。 def draw_fireworks(): for i in range(10): print(" " * random.randint(1, 50) + "*" * random.randint(1, 10)) time.sleep(0.1) print("-" * random.randint(10, 30)) 接下来,我们可以在脚本的主函数中调用draw_fireworks函数来展示烟花效果。我们可以询问用户是否想要再次观看烟花,并根据用户的选择决定是否继续运行脚本。 def main(): while True: draw_fireworks() replay = input("是否继续观看烟花?(Y/N)") if replay.lower() != "y": break if __name__ == "__main__": main() 运行脚本后,它会在终端上显示一系列的烟花"爆炸"效果。每个烟花效果之间有一个简单的尾迹,用户可以选择是否继续观看烟花。 这只是一个简单的烟花脚本示例,你可以根据自己的需要进行改进和扩展,比如添加不同颜色的烟花、播放音效等。实践中,你可能还需要使用更高级的图形库来创建更真实和更复杂的烟花效果。 ### 回答3: 下面是一个关于烟花的Python脚本: ```python import random from time import sleep def explode(x, y): print(f"烟花在位置 ({x}, {y}) 爆炸!") def launch_firework(): height = random.randint(10, 20) speed = random.uniform(0.5, 2.0) direction = random.uniform(0, 360) x = random.randint(0, 100) y = 0 print(f"发射烟花!初始位置 ({x}, {y}),高度:{height},速度:{speed},方向:{direction}度。") while y < height: x += speed * direction # 移动水平位置 y += speed # 移动竖直位置 sleep(0.1) # 暂停0.1秒,模拟烟花上升过程 print(f"烟花位置:({x}, {y})") explode(x, y) launch_firework() ``` 在这个脚本中,我们使用`random`库来生成烟花的初始位置、高度、速度和方向。然后,我们使用一个循环来模拟烟花上升的过程,每次循环更新烟花的位置,并使用`sleep`函数来暂停0.1秒,使烟花看起来像是缓慢上升。当烟花到达指定的高度时,调用`explode`函数模拟烟花爆炸的效果,函数会输出烟花在爆炸时的位置。最后,我们调用`launch_firework`函数来发射烟花。 请注意,这只是一个简单的示例脚本,烟花的路径和爆炸效果可能需要更复杂的算法和绘图技术来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值