https://f.wss.ink/f/gsxncwy9azo 复制链接到浏览器打开
import sys import os from PyQt6.QtWidgets import ( QApplication, QWidget, QVBoxLayout, QPushButton, QLabel, QFileDialog, QMessageBox ) from PyQt6.QtCore import Qt class TxtCleaner (QWidget): def __init__ (self): super ().__init__ () self.setWindowTitle ("批量清空 TXT 内容") self.setFixedSize (400, 180) self._init_ui () def _init_ui (self): layout = QVBoxLayout () layout.setSpacing (15)
self.folder_label = QLabel ("请选择包含 TXT 文件的文件夹") self.folder_label.setAlignment (Qt.AlignmentFlag.AlignCenter) layout.addWidget (self.folder_label)
choose_btn = QPushButton ("选择文件夹") choose_btn.clicked.connect (self.choose_folder) layout.addWidget (choose_btn)
clear_btn = QPushButton ("一键清空所有 TXT 内容") clear_btn.clicked.connect (self.clear_txts) clear_btn.setEnabled (False) self.clear_btn = clear_btn layout.addWidget (clear_btn) self.setLayout (layout) def choose_folder (self): folder = QFileDialog.getExistingDirectory (self, "选择文件夹", os.getcwd ()) if folder: self.folder_path = folder self.folder_label.setText (f"当前文件夹:{folder}") self.clear_btn.setEnabled (True) def clear_txts (self): txt_files = [ f for f in os.listdir (self.folder_path) if os.path.isfile (os.path.join (self.folder_path, f)) and f.lower ().endswith (".txt") ] count = 0 for name in txt_files: path = os.path.join (self.folder_path, name) try:
with open (path, "w", encoding="utf-8"): pass count += 1 except Exception as e: print (f"清空失败:{path} -> {e}") QMessageBox.information ( self, "操作完成", f"共清空 {count} 个 TXT 文件的内容。" ) if __name__ == "__main__": app = QApplication (sys.argv) window = TxtCleaner () window.show () sys.exit (app.exec ())
|