Lexer输出;TypeError:write()参数必须是str,而不是bytes;在Python中。我做错了什么?
如果这只是一个愚蠢的错误,我很抱歉,因为我对Python或编程几乎没有经验<代码>pickle.dump(代码,输出)不喜欢我给它的参数。我如何解决这个问题 下面是将我的文件输出到lexer_output.txt的示例代码:Lexer输出;TypeError:write()参数必须是str,而不是bytes;在Python中。我做错了什么?,python,lexer,Python,Lexer,如果这只是一个愚蠢的错误,我很抱歉,因为我对Python或编程几乎没有经验pickle.dump(代码,输出)不喜欢我给它的参数。我如何解决这个问题 下面是将我的文件输出到lexer_output.txt的示例代码: global output output = open ("C:\\Users\Asher\Documents\BUSlang\lexer_output", "w") pickle.dump(code, output) 错误是 "TypeError: write() argume
global output
output = open ("C:\\Users\Asher\Documents\BUSlang\lexer_output", "w")
pickle.dump(code, output)
错误是
"TypeError: write() argument must be str, not bytes"
变量
code
在脚本前面的code=meta.read()
中定义。没有其他错误。错误消息没有多大帮助。经过一些尝试和错误,我得到了它的工作
output = open("C:\\Users\Asher\Documents\BUSlang\lexer_output", "wb")
i、 e.要写入的输出文件必须以二进制模式打开
另一个注意事项:我不确定为什么要使用
全局输出,在示例代码中不需要它。错误消息没有多大帮助。经过一些尝试和错误,我得到了它的工作
output = open("C:\\Users\Asher\Documents\BUSlang\lexer_output", "wb")
i、 e.要写入的输出文件必须以二进制模式打开
另一个注意事项:我不确定为什么要使用全局输出,在示例代码中不需要它。来自:
file参数必须有一个接受单个参数的write()
方法
字节
参数
“w”
文件模式意味着write()
接受str
对象,而不是bytes
,而是传递“wb”
您应该传递一个二进制文件,而不是在文本模式下打开的文件。来自:
file参数必须有一个接受单个参数的write()
方法
字节
参数
“w”
文件模式意味着write()
接受str
对象,而不是bytes
,而是传递“wb”
您应该传递一个二进制文件,而不是以文本模式打开的文件。您使用的是Python 2还是Python 3?什么是meta
?我正在使用Python 3.5。你为什么要问?meta
是在中声明的,以open(“C:\\Users\Asher\Documents\BUSlang\code.txt”,“r”)作为meta:
,code
是在其范围内声明的,如果我正确使用了这个词。我应该改用“r+”
吗?你使用的是Python 2还是Python 3?什么是meta
?我正在使用Python 3.5。你为什么要问?meta
在中被声明为ish,而open(“C:\\Users\Asher\Documents\BUSlang\code.txt”,“r”)作为meta:
,code
在其范围内被声明,如果我正确使用了这个词。我应该使用“r+”
?