首頁  >  文章  >  後端開發  >  十個有趣的 Python 進階腳本,建議收藏!

十個有趣的 Python 進階腳本,建議收藏!

王林
王林轉載
2023-04-14 20:46:012249瀏覽

十個有趣的 Python 進階腳本,建議收藏!

在日常的工作中,我們總是會面臨到各式各樣的問題。

其中不少的問題,使用一些簡單的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()

就以小F自己的電腦為例,執行程式碼就能看到設定。

十個有趣的 Python 進階腳本,建議收藏!

4、解壓縮檔案

使用zipfile模組進行檔案解壓縮,同理也可以壓縮檔案。

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

5、Excel工作表合併

幫助你將Excel工作表合併到一張表上,表格內容如下圖。

十個有趣的 Python 進階腳本,建議收藏!

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)

結果如下。

十個有趣的 Python 進階腳本,建議收藏!

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

原圖如下。

十個有趣的 Python 進階腳本,建議收藏!

素描圖如下,還蠻好看的。

十個有趣的 Python 進階腳本,建議收藏!

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文件的內容如下,包含了一個表格。

十個有趣的 Python 進階腳本,建議收藏!

提取到的CSV檔案內容如下。

十個有趣的 Python 進階腳本,建議收藏!

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'))

以上是十個有趣的 Python 進階腳本,建議收藏!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除