请问小伙伴们,谁会python 文本txt去重了 之前同学做的是C语言,每次都是改成ANSI编码 然后复制 文本的属性, 安全里面的对象名称的路径操作 。 然后点击去重 ,这个操作每次要用好几秒 默认去重后样式已经在 https://wwij.lanzout.com/iBEuz2yav0oh 去重前 去重后的文本 在里面 需要的就是 txt 去重后的样式。因为之前同学做的C语言去重,每次打开报错病毒,需要关闭 为 [color=]“病毒和威胁防护“设置 实施保护 全部关闭 谢谢 微软, 文本
这是给AI的结果。链接里面的结果.txt是我运行的结果,我看了下基本符合。 https://scuguyi.lanzout.com/i9Tae2yaysxc 这是代码,其实比较简单,交给AI就行 我的描述如下 写py程序处理txt文本去重和格式化。 处理文件,E:\pythoning\file\测试.txt。输出结果到‘D:\UserData\Downloads’下,命名为‘结果.txt’ 处理方式:数据主要是题目 选项和答案组成。因此通过行读取:‘1.’到‘2.’之间为一道题目的完整内容。注意读取时需要注意:1.题号可能不规则,比如‘1.’后面是‘3.’,‘4.’,后面是‘10.’。因此要通过通配符识别‘数字.’开头的逻辑 2.获取分后的文本(按照获取的题目顺序排序),去除每一道题目中可能的空行。 3.之后再规范格式(识别是否重复,去重) 3.1去除每到题目的原本的‘1.’‘3.’等编号,按照‘1、’‘2、’重新依次编号。 3.2对题目行后面(每道题的第一行)再增加一个空行即可[Python] 纯文本查看 复制代码import re import os # 文件路径定义 input_file = r'E:\pythoning\file\测试.txt' output_dir = r'D:\UserData\Downloads' output_file = os.path.join(output_dir, '结果.txt') # 正则表达式匹配题号:数字+点开头 question_start_pattern = re.compile(r'^(\d+)(?:\.|\、)') seen_questions = set() questions = [] current_question = [] def is_question_start(line): return question_start_pattern.match(line.strip()) # 读取文件并分块提取题目(ANSI 编码 = gbk) with open(input_file, 'r', encoding='gbk') as f: for line in f: line = line.rstrip() # 去除右边空格和换行符 if is_question_start(line): if current_question: questions.append(current_question) current_question = [] current_question.append(line) if current_question: questions.append(current_question) # 处理题目:去空行、去重、规范格式 formatted_questions = [] for idx, lines in enumerate(questions, start=1): # 去掉题号前缀 first_line = lines[0] clean_first_line = question_start_pattern.sub('', first_line, count=1).strip() # 构建新题干(去掉原题号,并重新编号为“1、”) new_question = [f"{idx}、{clean_first_line}"] for line in lines[1:]: stripped = line.strip() if stripped: # 忽略空行 new_question.append(line) # 添加空行在题干之后 if len(new_question) > 0: new_question.insert(1, '') # 第二行插入空行 # 转为字符串用于去重 question_str = '\n'.join(new_question) if question_str not in seen_questions: seen_questions.add(question_str) formatted_questions.append(new_question) # 写入结果文件(使用 UTF-8 编码) os.makedirs(output_dir, exist_ok=True) with open(output_file, 'w', encoding='utf-8') as f: for q in formatted_questions: f.write('\n'.join(q)) f.write('\n\n') # 每个题目之间保留两个换行 print(f"✅ 处理完成,共输出 {len(formatted_questions)} 道不重复题目。") print(f"📁 输出路径:{output_file}")
teddymvs 发表于 2025-6-7 23:01 这是给AI的结果。链接里面的结果.txt是我运行的结果,我看了下基本符合。 https://scuguyi.lanzout.com/i9 ... 想问一下 如果有同样的题目 另一个答案是正确的 他会显示在下面吗 1、当前现网商用最高网络制式是什么? WCDMA(不选) LTE(选) NR(不选) GSM(不选) 太遗憾了,答错了我的得分:0分 NR(选) 恭喜你,答对了我的得分:10分
zhuguiyong 发表于 2025-6-7 23:22 https://wwus.lanzouu.com/iUv0t2yb0mpa 密码:6214 试试 这个还要手动操作 谢谢 希望自动识别输出文件 如果文件名重复 自动叠加 如 hua1 hua2 hua3 自动识别
teddymvs 发表于 2025-6-8 09:12 应该会显示,因为判断逻辑是 划分为每到题目后,是根据全部文本进行对比。所以有差异的话就是不同题目,你 ... 测试了 不是在下面显示的 还是分开的 重新一个序号 题目和答案都在
teddymvs 发表于 2025-6-7 23:01 这是给AI的结果。链接里面的结果.txt是我运行的结果,我看了下基本符合。 https://scuguyi.lanzout.com/i9 ... 14、电脑更换主板之后旧硬盘内直接可以插入到新主板读取 正确(选) 错误(不选) 太遗憾了,答错了?我的得分:0分 31、电脑更换主板之后旧硬盘内直接可以插入到新主板读取 正确(不选) 错误(选) 恭喜你,答对了?我的得分:10分 48、电脑更换主板之后旧硬盘内直接可以插入到新主板读取 正确(不选) 错误(选) 恭喜你,答对了?我的得分:10分 85、电脑更换主板之后旧硬盘内直接可以插入到新主板读取 正确(不选) 错误(选) 恭喜你,答对了?我的得分:10分 重复了 7-8个 直到序号153 最后一个题目