ValueError:二进制模式不接受编码参数

ValueError: 二进制模式不接受编码参数

ValueError: binary mode doesn’t take an encoding argument

rb当我们以二进制模式(或wb)打开文件并设置关键字参数时,会出现 Python“ValueError: binary mode doesn’t take an encoding argument” encoding

r要解决该错误,请以文本模式(或w打开文件或删除encoding关键字参数。

valueerror 二进制模式不接受编码参数

下面是错误如何发生的示例。

主程序
# ⛔️ ValueError: binary mode doesn't take an encoding argument with open('example.txt', 'rb', encoding='utf-8') as f: result = f.readlines() print(result)

rb我们以(读取二进制)模式而不是r(读取文本)模式打开文件,并设置encoding导致错误的关键字参数。

wb如果您以(写入二进制)模式而不是w(写入文本)模式打开文件,情况也是如此。

读取或写入二进制文件

如果您正在读取或写入二进制文件,请保留模式并删除
编码关键字参数

主程序
with open('example.txt', 'rb') as f: result = f.readlines() print(result)
关键字encoding参数仅在读取和写入文本文件时相关。

读取或写入文本文件

如果您正在读取或写入文本文件,请b从模式中删除字符并设置encoding关键字参数。

主程序
with open('example.txt', 'r', encoding='utf-8') as f: result = f.readlines() print(result)

w如果写入文本文件,则可以使用该模式。

当以文本模式打开文件时,我们从文件读取字符串或向文件写入字符串。

这些字符串使用特定的编码(utf-8在示例中)进行编码。

请注意,如果您没有显式设置encoding关键字参数,则默认值取决于平台。

如果你想同时读取和写入文件,请r+在打开文件时使用模式。

如果将 a 附加b到模式(如在第一个代码片段中),文件将以二进制模式打开。

encoding请注意,以二进制模式打开文件时不能指定。

当以二进制模式打开文件时,数据将作为bytes
对象进行读取和写入。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: