给你修改成批量版本了,最终结果是文件名_过滤.txt
把你要过滤的所有文件放 D:\红楼梦相关 这个文件夹里,然后在python中运行脚本就可以了。
不管多少个文件都自动处理。
[Python] 纯文本查看 复制代码 import os
import re
# 指定文件夹路径,这里你自己修改成真实的路径,注意\号需要写成\\
folder_path = r"D:\\红楼梦相关"
# 获取所有的txt文件
txt_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]
# 正则表达式模式
pattern = r'[^#]+\.zip|[^#]+\.pdf'
# 遍历每个txt文件
for txt_file in txt_files:
# 构造文件的完整路径
file_path = os.path.join(folder_path, txt_file)
# 读取文件内容
with open(file_path, 'r', encoding='utf-8') as file:
data = file.read()
# 使用正则表达式匹配文件名
file_names = re.findall(pattern, data)
# 提取每个文件名的最后12个字符
last_14_chars = [name[-12:] for name in file_names]
# 生成新的文件名
new_file_name = f"{os.path.splitext(txt_file)[0]}_过滤.txt"
new_file_path = os.path.join(folder_path, new_file_name)
# 将结果写入新的文件
with open(new_file_path, 'w', encoding='utf-8') as new_file:
for name in last_14_chars:
new_file.write(name + '\n')
print(f"Processed {txt_file} -> {new_file_name}") |