You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何解析文本文件单词、转小写并删除撇号以外的特殊字符

现有代码问题梳理

  • 第一个获取文件名的input()返回值没有存储,后续第二个input()会重复要求用户输入,逻辑错误
  • with代码块缩进不符合Python规范
  • word.lower()会返回新的小写字符串,不会修改原字符串,你没有接收返回值所以小写转换不会实际生效
  • 缺失特殊字符过滤的逻辑

可行实现方案

可以用正则表达式匹配所有不属于小写字母、数字、撇号的字符,直接替换为空即可,下面是完整可运行代码:

import re

# 存储用户输入的文件名
file_name = input("Please enter a file name: ")
with open(file_name, 'r', encoding='utf-8') as input_file:
    for line in input_file:
        for word in line.split():
            # 先转小写,再过滤掉除撇号外的所有非字母数字字符
            processed_word = re.sub(r"[^a-z0-9']", "", word.lower())
            # 这里可添加后续处理逻辑,比如存储、统计、打印等
            print(processed_word)

逻辑说明

  • 正则规则r"[^a-z0-9']"中,[^xxx]表示匹配所有不属于[]内的字符,我们仅保留小写字母a-z(因为已经提前做了小写转换,无需匹配大写)、数字0-9和撇号',其余所有字符都会被替换为空
  • 如果你不需要保留数字,直接删掉正则规则里的0-9即可

内容的提问来源于stack exchange,提问作者Nat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:36:06