code:
import difflib
import json
import os
# 示範用的資料
log_sensors = ["temperture", "humidy", "presure"] # 可能打錯的文字
rd_sensors = ["temperature", "humidity", "pressure", "voltage", "current"] # 正確的文字
# 建立空字典來存储匹配結果
matches = {}
# 對每個 log_sensors 中的項目尋找相似項
for sensor in log_sensors:
# 使用 difflib 尋找相似的文字
# n=5: 最多回傳5個匹配結果
# cutoff=0.6: 相似度閾值,0~1之間,越大要求越嚴格
match = difflib.get_close_matches(sensor, rd_sensors, n=5, cutoff=0.6)
# 如果找到匹配項,存入字典;沒找到則存入 None
if match:
matches[sensor] = match
else:
matches[sensor] = None
# 印出比對結果
print(f"原始文字: {sensor}")
print(f"相似項目: {match}")
print("-" * 30)
# 設定輸出路徑
# 假設目前在 /path/to/project
dirname = "/path/to/project"
dir_ex = os.path.join(dirname, "export")
path_ex = os.path.join(dir_ex, "similar.json")
# 建立輸出資料夾(如果不存在)
os.makedirs(dir_ex, exist_ok=True)
# 將結果寫入 JSON 檔案
with open(path_ex, "w", encoding="UTF-8") as f:
json.dump(matches, f, indent=4, ensure_ascii=False)
print(f"檔案已經輸出到\n{path_ex}")輸出結果:

json:

這個程式的主要功能:
- 比對兩個列表中的相似文字
- 使用 difflib 進行模糊匹配
- 將結果整理成字典格式
- 輸出成易讀的 JSON 檔案
常用參數說明:
n: 要返回的最大匹配數量cutoff: 相似度閾值(0.6 表示需要 60% 相似)indent: JSON 檔案的縮排格式ensure_ascii: 設為 False 可正確處理中文
推薦hahow線上學習python: https://igrape.net/30afN

![Python-docx 圖片提取完全指南:從 rId 到二進位資料的探險rid ; part = doc.part.rels[rid].target_part #return part.blob if “ImagePart” in type(part).__name__ else None Python-docx 圖片提取完全指南:從 rId 到二進位資料的探險rid ; part = doc.part.rels[rid].target_part #return part.blob if “ImagePart” in type(part).__name__ else None](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2026/01/20260113135812_0_8fa645.png?quality=90&zoom=2&ssl=1&resize=350%2C233)


![Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice Python如何寫入docx文件? from docx import Document ; doc = Document() ; table = doc.add_table(rows=5, cols=3) ; table.cell(r,c).text = str(tabs[r][c]) ; doc.add_heading ; p = doc.add_paragraph ; p.add_run ; doc.add_picture ; 使用wordPad開啟會少最後一個row,可以用免費的LibreOffice](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2022/09/20220914154313_30.jpg?quality=90&zoom=2&ssl=1&resize=350%2C233)





近期留言