#脱敏窗口def create_new_window4 def desensitize_texttext # 替换为 text = resubru4e00-u9fa52 text # 替换为 text = resubrd3dd4 r1 text return text def desensitize_word_fi
以下是修改过的代码,主要是在处理Excel文件时使用了openpyxl库中的Cell类的value属性来进行脱敏操作:
import re
import os
import tkinter as tk
from tkinter import filedialog
from docx import Document
import openpyxl
def create_new_window4():
def desensitize_text(text):
# 替换为*
text = re.sub(r'[\u4e00-\u9fa5]{2,}', '*', text)
# 替换为****
text = re.sub(r'\d{3}\d*(\d{4})', r'****\1', text)
return text
def desensitize_word_file(file_path):
document = Document(file_path)
for paragraph in document.paragraphs:
paragraph.text = desensitize_text(paragraph.text)
for table in document.tables:
for row in table.rows:
for cell in row.cells:
cell.text = desensitize_text(cell.text)
desensitized_file_path = os.path.splitext(file_path)[0] + '_desensitized.docx'
document.save(desensitized_file_path)
def desensitize_excel_file(file_path):
workbook = openpyxl.load_workbook(file_path)
for sheet in workbook.sheetnames:
worksheet = workbook[sheet]
for row in worksheet.iter_rows():
for cell in row:
cell.value = desensitize_text(str(cell.value))
desensitized_file_path = os.path.splitext(file_path)[0] + '_desensitized.xlsx'
workbook.save(desensitized_file_path)
def desensitize_word():
file_path = filedialog.askopenfilename()
if file_path:
desensitize_word_file(file_path)
def desensitize_excel():
file_path = filedialog.askopenfilename()
if file_path:
desensitize_excel_file(file_path)
new_window = tk.Toplevel(root_new)
new_window.title("脱敏窗口")
new_window.geometry("500x400")
word_button = tk.Button(new_window, text="Word文件脱敏", command=lambda: desensitize_word())
word_button.pack(pady=10)
excel_button = tk.Button(new_window, text="Excel文件脱敏", command=lambda: desensitize_excel())
excel_button.pack(pady=10)
``
原文地址: https://www.cveoy.top/t/topic/hftV 著作权归作者所有。请勿转载和采集!