Lexer Outputs "TypeError: write() argument must be str, not bytes" in Python. What am I doing wrong?
Lexer Outputs "TypeError: write() argument must be str, not bytes" in Python. What am I doing wrong?
如果这只是一个愚蠢的错误,我很抱歉,因为我对 Python 或编程没有什么经验。 pickle.dump(code, output)
不喜欢我给出的论据。我该如何解决这个问题?
这是将我的文件输出到 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")
即您要写入的输出文件必须以二进制模式打开。
另请注意:我不确定您为什么要使用 global output
,在您的示例代码中不需要它。
The file argument must have a write()
method that accepts a single
bytes
argument.
"w"
文件模式意味着 write()
接受 str
个对象,而不是 bytes
,而是传递 "wb"
。
您应该传递一个二进制文件而不是在文本模式下打开的文件。
如果这只是一个愚蠢的错误,我很抱歉,因为我对 Python 或编程没有什么经验。 pickle.dump(code, output)
不喜欢我给出的论据。我该如何解决这个问题?
这是将我的文件输出到 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")
即您要写入的输出文件必须以二进制模式打开。
另请注意:我不确定您为什么要使用 global output
,在您的示例代码中不需要它。
The file argument must have a
write()
method that accepts a singlebytes
argument.
"w"
文件模式意味着 write()
接受 str
个对象,而不是 bytes
,而是传递 "wb"
。
您应该传递一个二进制文件而不是在文本模式下打开的文件。