分享10個超級實用事半功倍的Python自動化腳本
Python高級腳本,幫助我們減少無謂的時間浪費,提高工作學習中的效率。給照片添加水印
給照片添加水印的代碼多種多樣,下面這種的或許是最為簡單的形式,
from?PIL?import?Image
from?PIL?import?ImageFont
from?PIL?import?ImageDraw
def?watermark_Image(img_path,output_path,?text,?pos):
????img?=?Image.open(img_path)
????drawing?=?ImageDraw.Draw(img)
????black?=?(10,?5,?12)
????drawing.text(pos,?text,?fill=black)
????img.show()
????img.save(output_path)
img?=?'2.png'
watermark_Image(img,?'watermarked_2.jpg','Python愛好者集中營',?pos=(10,?10))
檢測文本文件的相似性
from?difflib?import?SequenceMatcher
def?file_similarity_checker(f1,?f2):
????with?open(f1,?errors="ignore")?as?file1,?open(f2,?errors="ignore")?as?file2:
????????f1_data?=?file1.read()
????????f2_data?=?file2.read()
????????checking?=?SequenceMatcher(None,?f1_data,?f2_data).ratio()
????????print(f"These?files?are?{checking*100}?%?similar")
????????
file_1?=?"路徑1"
file_2?=?"路徑2"
file_similarity_checker(file_1,?file_2)
對文件內(nèi)容進行加密
from?cryptography.fernet?import?Fernet
def?encrypt(filename,?key):
????fernet?=?Fernet(key)
????with?open(filename,?'rb')?as?file:
????????original?=?file.read()
????encrypted?=?fernet.encrypt(original)
????with?open(filename,?'wb')?as?enc_file:
????????enc_file.write(encrypted)
????????
key?=?Fernet.generate_key()
filename?=?"file.txt"
encrypt(filename,?key)
def?decrypt(filename,?key):
????fernet?=?Fernet(key)
????with?open(filename,?'rb')?as?enc_file:
????????encrypted?=?enc_file.read()
????decrypted?=?fernet.decrypt(encrypted)
????with?open(filename,?'wb')?as?dec_file:
????????dec_file.write(decrypted)
decrypt(filename,?key)
import?pyAesCrypt
def?Encryption(input_file_path,?output_file_path,?key):
????pyAesCrypt.encryptFile(input_file_path,?output_file_path,?key)
????print("File?has?been?decrypted")
def?Decryption(input_file_path,?output_file_path,?key):
????pyAesCrypt.decryptFile(input_file_path,?output_file_path,?key)
????print("File?has?been?decrypted")
將照片轉(zhuǎn)換為PDF
import?os
import?img2pdf
with?open("Output.pdf",?"wb")?as?file:
????file.write(img2pdf.convert([i?for?i?in?os.listdir('文件路徑')?if?i.endswith(".jpg")]))
修改照片的長與寬
from?PIL?import?Image
import?os
def?img_resize(file,?h,?w):
??img?=?Image.open(file)
????Resize?=?img.resize((h,w),?Image.ANTIALIAS)
????Resize.save('resized.jpg',?'JPEG',?quality=90)
????
img_resize("文件路徑",?400,?200)
對于照片的其他操作
img?=?Image.open('1.jpg')
blur?=?img.filter(ImageFilter.BLUR)
blur.save('output.jpg')
照片翻轉(zhuǎn)90度
img?=?Image.open('1.jpg')
rotate?=?img.rotate(90)
rotate.save('output.jpg')
照片進行銳化的處理
img?=?Image.open('1.jpg')
sharp?=?img.filter(ImageFilter.SHARPEN)
sharp.save('output.jpg')
照片左右對稱翻轉(zhuǎn),代碼如下
img?=?Image.open('1.jpg')
transpose?=?img.transpose(Image.FLIP_LEFT_RIGHT)
transpose.save('output.jpg')
照片進行灰度處理
img?=?Image.open('1.jpg')
convert?=?img.convert('L')
convert.save('output.jpg')
測試網(wǎng)速
當然我們在開始測網(wǎng)速之前需要提前下載好依賴的模塊
pip?install?speedtest-cli
然后我們開始嘗試測試一下網(wǎng)速
from?speedtest?import?Speedtest
def?Testing_Speed(net):
????download?=?net.download()
????upload?=?net.upload()
????print(f'下載速度:?{download/(1024*1024)}?Mbps')
????print(f'上傳速度:?{upload/(1024*1024)}?Mbps')
????print("開始網(wǎng)速的測試?...")
net?=?Speedtest()
Testing_Speed(net)
貨幣匯率的轉(zhuǎn)換
例如我們想要看一下美元與英鎊之間的匯率轉(zhuǎn)換,100美元可以換成多少的英鎊,代碼如下
#?導(dǎo)入模塊
from?currency_converter?import?CurrencyConverter
from?datetime?import?date
#?案例一
conv?=?CurrencyConverter()
c?=?conv.convert(100,?'USD',?'GBP')
print(round(c,?2))?#?保留兩位小數(shù)
或者我們想要看一下美元與歐元之間的匯率轉(zhuǎn)換,100美元可以換成多少的歐元,
#?案例二
c?=?conv.convert(100,?'USD',?'EUR',?date=date(2022,?3,?30))
print(round(c,?2))?#?44.1
生成二維碼
其中包括了二維碼的生成以及二維碼的解析,代碼如下
import?qrcode
from?PIL?import?Image
from?pyzbar.pyzbar?import?decode
def?Generate_qrcode(data):
????qr?=?qrcode.QRCode(
????????version=1,
????????error_correction=qrcode.constants.ERROR_CORRECT_L,
????????box_size=10,
????????border=4,)
????qr.add_data(data)
????qr.make(fit=True)
????image?=?qr.make_image(fill_color="black",?back_color="white")
????image.save("qrcode.png")
Generate_qrcode("Python愛好者集中營?欣一")
我們再來看一下二維碼的解析,代碼如下
def?Decode_Qrcode(file_name):
????result?=?decode(Image.open(file_name))
????print("Data:",?result[0][0].decode())
Decode_Qrcode("文件名")
制作一個簡單的網(wǎng)頁應(yīng)用
調(diào)用的是Python當中的flask模塊來制作網(wǎng)頁應(yīng)用,代碼如下
from?flask?import?Flask
app?=?Flask(__name__)
@app.route("/")
def?home():
????return?"Hello?World!"
????
@app.route("/python")
def?test():
????return?"歡迎來到Python愛好者集中營,欣一"
????
if?__name__?==?"__main__":
????app.run(debug=True)
任何疑問,歡迎留言或添微信上給我消息
我們的文章到此就結(jié)束啦~記得點贊
如何找到我:
