Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lexer输出;TypeError:write()参数必须是str,而不是bytes;在Python中。我做错了什么?_Python_Lexer - Fatal编程技术网

Lexer输出;TypeError:write()参数必须是str,而不是bytes;在Python中。我做错了什么?

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

如果这只是一个愚蠢的错误,我很抱歉,因为我对Python或编程几乎没有经验<代码>pickle.dump(代码,输出)不喜欢我给它的参数。我如何解决这个问题

下面是将我的文件输出到lexer_output.txt的示例代码:

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+”