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

如何使用Python统计TXT文件中不含特殊字符的字符数及最长单词

实现方案(Python入门友好版)

前置说明

将待处理的TXT文件和Python代码放在同一文件夹,或者填写TXT文件的绝对路径即可运行,所有方案都不需要额外安装第三方依赖。

基础写法(无复杂语法,易理解)

我们会分两步完成需求,中间变量逻辑清晰,适合入门阶段学习:

# 定义需要排除的特殊字符集合
exclude_chars = {'.', ',', ';', '!', ':'}
# 有效字符计数器
valid_char_total = 0

# 读取TXT文件,把'你的文件.txt'替换为实际的文件名
with open('你的文件.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    cleaned_content = ''
    # 逐字符处理,过滤特殊字符
    for char in content:
        if char not in exclude_chars:
            cleaned_content += char
            valid_char_total += 1

# 输出有效字符总数
print(f"排除特殊字符后的总字符数:{valid_char_total}")

# 拆分单词、查找最长单词
word_list = cleaned_content.split()
if not word_list:
    print("文件内无有效单词")
else:
    # 按单词长度取最大值
    longest_word = max(word_list, key=lambda x: len(x))
    print(f"最长有效单词:{longest_word},单词长度:{len(longest_word)}")

简化写法(熟悉基础语法后使用)

如果已经掌握基础语法,可以用正则表达式简化处理逻辑:

import re

# 匹配所有需要排除的特殊字符的正则规则
exclude_rule = r'[.,;!:]'

with open('你的文件.txt', 'r', encoding='utf-8') as f:
    content = f.read()
    # 批量替换所有特殊字符为空
    cleaned_content = re.sub(exclude_rule, '', content)
    valid_char_total = len(cleaned_content)
    word_list = cleaned_content.split()
    longest_word = max(word_list, key=lambda x: len(x)) if word_list else '无有效单词'

print(f"排除特殊字符后的总字符数:{valid_char_total}")
print(f"最长有效单词:{longest_word}")

注意事项

  • 上述拆分单词的逻辑默认按空格拆分,适合纯英文、中英混排内容,如果是纯中文内容需要调整分词规则
  • 如果需要新增其他需要排除的特殊字符,直接往基础写法的exclude_chars集合,或者正则规则的中括号里加对应字符即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:36:06