Python开发TXT自动翻译工具触发NoneType AttributeError如何解决
报错原因
该错误是googletrans官方稳定版长期未更新导致的接口兼容性问题:目前官方发布的3.0.0稳定版依赖的谷歌翻译接口响应格式已经发生变更,库内置的正则匹配规则无法从新的响应结构中提取到对应参数,导致匹配结果返回None,后续代码尝试调用None的group方法时就触发了该报错。
解决方法
优先使用第一种方案,操作最简单兼容性最好:
方案1:更换为修复版依赖包
官方发布的4.0.0预发布版本已经适配了新的接口格式,直接替换安装即可:
- 卸载旧版本稳定包:
pip uninstall googletrans - 安装修复版本:
pip install googletrans==4.0.0-rc1
安装完成后直接运行原有代码即可正常执行翻译逻辑。
方案2:手动修改库源码(不推荐)
如果不方便更换依赖版本,可以找到本地googletrans安装目录下的client.py文件,定位到匹配接口参数的正则行,将原有匹配规则替换为适配新接口的正则规则即可,该方案仅作为临时应急使用,后续依赖更新后会失效,不建议长期使用。
代码优化建议
原代码中读取文件没有显式关闭,且未指定编码格式,容易出现文件句柄泄漏、不同系统下乱码的问题,可调整为以下写法:
import re import googletrans from googletrans import Translator file_translator = Translator() # 改用上下文管理器读取文件,自动处理文件关闭逻辑 with open('demo.txt', 'r', encoding='utf-8') as tFile: content = tFile.read() print(content) result = file_translator.translate(content, dest='fr') with open('output.txt', 'w', encoding='utf-8') as outFile: outFile.write(result.text)
内容的提问来源于stack exchange,提问作者DaLegacy
相关产品推荐
相关产品推荐

