开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 181|回复: 10
收起左侧

[已解决] 文本TXT内容清空并保存文件

 关闭 [复制链接]
结帖率:33% (2/6)
发表于 2025-4-19 12:11:04 | 显示全部楼层 |阅读模式   山东省潍坊市
10精币
QQ图片20250419120824.png

例如上图,多个TXT文件里面都有内容,我想一次将多个TXT里面的内容清空并保留文件(TXT。)
有大哥帮忙看看咋写不


最佳答案


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:77% (59/77)
发表于 2025-4-19 12:11:05 | 显示全部楼层   河南省信阳市
VX截图_20250419121535.png
回复

使用道具 举报

结帖率:100% (9/9)

签到天数: 10 天

发表于 2025-4-19 12:14:33 | 显示全部楼层   江苏省无锡市
写到文件 (路径, {  })
回复

使用道具 举报

结帖率:77% (59/77)
发表于 2025-4-19 12:16:45 | 显示全部楼层   河南省信阳市
https://f.wss.ink/f/gsxncwy9azo 复制链接到浏览器打开


VX截图_20250419121535.png

  
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 ())

回复

使用道具 举报

结帖率:77% (59/77)
发表于 2025-4-19 12:17:05 | 显示全部楼层   河南省信阳市
  
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 ())
VX截图_20250419121535.png
回复

使用道具 举报

结帖率:100% (9/9)

签到天数: 10 天

发表于 2025-4-19 12:17:32 | 显示全部楼层   江苏省无锡市
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
路径文本型 
文本文件文本型0
i整数型 
路径 = 取运行目录 ()“\TXT”
文件_枚举 (路径, “*.txt”, 文本文件, 真, 假, )
计次循环首 (取数组成员数 (文本文件), i)
写到文件 (文本文件 [i], {  })
计次循环尾 ()

点评

速度真快   **  发表于 2025-4-19 12:19
回复

使用道具 举报

结帖率:77% (59/77)
发表于 2025-4-19 12:18:23 | 显示全部楼层   河南省信阳市
回复要审核???https://f.wss.ink/f/gsxncwy9azo 复制链接到浏览器打开
回复

使用道具 举报

结帖率:100% (12/12)

签到天数: 10 天

发表于 2025-4-19 12:19:33 | 显示全部楼层   江苏省盐城市
直接空数据覆盖文件名
回复

使用道具 举报

结帖率:100% (105/105)

签到天数: 6 天

发表于 2025-4-19 12:27:01 | 显示全部楼层   浙江省温州市
获取所有文件名  创建新的空文本到新的目录  删除所有原来的文件名

点评

不用这么麻烦啊,直接枚举,写空字节进去不就行了吗   **  发表于 2025-4-19 12:33
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表