Python文本查看
import os
import sys
import win32com.client as win32
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
QHBoxLayout, QLabel, QLineEdit, QPushButton,
QTextEdit, QFileDialog, QProgressBar, QMessageBox,
QCheckBox)
from PyQt5.QtCore import Qt, QThread, pyqtSignal
class EncryptionWorker(QThread):
"""加密工作线程"""
progress_update = pyqtSignal(str)
progress_value = pyqtSignal(int)
finished_signal = pyqtSignal(int, int)
def __init__(self, directory, password, suffix):
super().__init__()
self.directory = directory
self.password = password
self.suffix = suffix
def run(self):
"""执行加密操作"""
# 支持的Excel文件扩展名
excel_extensions = ['.et', '.xls', '.xlsx']
# 确保目录路径存在
if not os.path.exists(self.directory):
self.progress_update.emit(f"错误: 目录 '{self.directory}' 不存在!")
return
# 计数器
encrypted_files = []
failed_files = []
self.progress_update.emit(f"开始扫描目录: {self.directory}")
# 首先计算总文件数
excel_files = []
for root, _, files in os.walk(self.directory):
for file in files:
file_path = os.path.join(root, file)
file_ext = os.path.splitext(file)[1].lower()
if file_ext in excel_extensions:
excel_files.append(file_path)
total_files = len(excel_files)
self.progress_update.emit(f"找到 {total_files} 个Excel文件")
# 初始化Excel应用程序
excel = None
try:
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
# 遍历处理所有文件
for index, file_path in enumerate(excel_files):
try:
self.progress_update.emit(f"正在处理: {file_path}")
self.progress_value.emit