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

Python中open()函数传入encoding参数报TypeError问题求助

解决TypeError: 'encoding' 是此函数的无效关键字参数

这个问题我太熟悉啦!你踩的是Python 2和Python 3在文件IO上的一个常见坑,下面给你拆解原因和解决办法:

错误原因

你当前运行代码的环境应该是Python 2——Python 2的内置open()函数根本不支持encoding这个关键字参数,只有Python 3的open()才原生支持编码指定。而且你虽然导入了codecs模块,但并没有实际使用它的文件打开方法,所以还是触发了内置open()的限制。

两种解决办法

办法一:用codecs.open()替换内置open()

既然你已经导入了codecs,直接用它的open()方法就好,这个方法在Python 2和3里都支持encoding参数,完美兼容:

import codecs
with codecs.open(filename+'.txt', 'a+', encoding='utf-8') as f:
    for tweet in list_of_tweets:
        # 先把清理后的文本存成变量,避免重复写替换逻辑
        cleaned_tweet = tweet.text.replace('\r','').replace('\n','') + '|'
        print(cleaned_tweet)
        f.write(cleaned_tweet)

办法二:升级到Python 3(更推荐)

Python 2早在2020年就停止维护了,官方不再提供任何安全更新和bug修复。升级到Python 3之后,你原来的代码可以直接运行——因为Python 3的内置open()函数原生支持encoding参数,不需要做任何修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:56:54