📚 智能文本处理工具
🌟 核心功能
专业级文本清洗与格式化工具 - 自动执行多重文本处理流程,输出标准化内容
🔧 核心处理流程
- 符号清洗
- 自动删除干扰符号:
「」「》《【】
- 智能分行
- 特殊标点组合处理:
?!
组合在!
后分行!!
组合在最后一个!
后分行
- 支持12种中英文标点分行:
,.,。!?!?;;'":}{
- 深度清理
- 移除指定标点:中文逗号、句号和英文逗号
- 清除所有空白行(包括仅含空格的行)
- 批量处理
- 自动遍历输入目录所有TXT文件
- 保持原文件名输出
🚀 特色优势
- 多层级文本清洗流水线处理
- 智能标点组合识别算法
- 完全保留文本语义结构
- 批量化一键处理能力
📂 文件管理
工作目录结构:
├── input/ # 输入目录(自动读取)
│ ├── 文件1.txt
│ └── 文件2.txt
└── output/ # 输出目录(自动创建)
├── 文件1.txt # 处理后的文件
└── 文件2.txt
💻 使用指南
- 将待处理TXT文件放入
input
文件夹 - 运行程序
- 查看
output
文件夹获取结果 - 终端显示处理进度和统计
💡 专业建议:特别适合处理从PDF/网页复制的文本内容,有效解决格式混乱问题,输出标准化可编辑文本。
import os
import re
def clean_and_split_text(input_file, output_file):
"""处理文本:删除符号、智能分行、删除空行、移除标点"""
with open(input_file, 'r', encoding='utf-8') as f:
text = f.read()
# 1. 删除「」》《【】
text = re.sub(r'[「」》《【】]', '', text)
# 2. 智能分行处理
# 先处理特殊标点组合
text = re.sub(r'(\?!+)', lambda m: m.group(0) + '\n', text) # ?!组合在!后分行
text = re.sub(r'(!!+)', lambda m: m.group(0) + '\n', text) # !!组合在最后一个!后分行
# 处理其他单个标点
text = re.sub(r'([,。?!、;’":}{,.](?!\W))', r'\1\n', text)
# 3. 删除分行后的中文,。和英文,
text = re.sub(r'[,。,]', '', text)
# 4. 删除空白行(包括仅含空格的行)
processed_text = os.linesep.join(
[line.strip() for line in text.splitlines() if line.strip()]
)
with open(output_file, 'w', encoding='utf-8') as f:
f.write(processed_text)
def batch_process_txt_files(input_dir, output_dir):
"""批量处理:保持原文件名,输出到新目录"""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
processed_files = 0
for filename in os.listdir(input_dir):
if filename.endswith('.txt'):
input_path = os.path.join(input_dir, filename)
output_path = os.path.join(output_dir, filename)
clean_and_split_text(input_path, output_path)
print(f"✓ 已处理: {filename}")
processed_files += 1
return processed_files
if __name__ == "__main__":
input_folder = "input"
output_folder = "output"
print("="*40)
print(f"{'文本处理工具':^40}")
print("="*40)
print("\n正在处理文件...\n")
try:
count = batch_process_txt_files(input_folder, output_folder)
print(f"\n▶ 共处理 {count} 个文件")
print("\n处理完成,程序将自动退出。")
except Exception as e:
print(f"\n⚠ 发生错误: {str(e)}")
