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

Spyder中长文本文件读取失败:是软件问题还是代码问题?

解决UnicodeDecodeError:文件编码不匹配问题

别担心,这个问题跟Spyder没啥关系,纯粹是文件编码不匹配导致的——咱们一步步来解决:

问题根源

你打开文件时没指定编码,Python默认用了Windows系统的cp1252编码去解码,但你的wiki-100k.txt应该是用utf-8编码保存的(毕竟包含50万字符的英文词库,大概率是utf-8格式)。当文件里出现cp1252不认识的字节(比如某些特殊符号、带重音的英文变体字符),就会触发这个解码错误。

修复代码

只需要在open()函数里明确指定编码为utf-8就行,修改后的代码如下:

with open("wiki-100k.txt", encoding="utf-8") as word_file:
    english_words = set(word.strip().lower() for word in word_file)

def IsWord(word):
    return word.lower() in english_words

print(IsWord("HaMs"))

验证Spyder是否有问题(可选)

如果你还是怀疑Spyder的问题,可以把脚本复制到命令行里直接运行:

  1. 打开cmd/PowerShell,切换到脚本所在的C:\Users\eirta\Desktop\Ciphers目录
  2. 运行python Keypad.py
    如果同样报错,那肯定是编码问题;如果命令行能正常运行,再去检查Spyder的环境编码设置(不过这种情况极少)。

补充说明

你的词库有10万单词,用生成器表达式构建集合的写法是高效的,没问题——编码问题解决后,这个代码应该能快速加载完词库,测试IsWord("HaMs")会返回True,因为已经把所有单词转成小写存入集合了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:17:56