TypeError: write() argument must be str, not bytes

python3中使用pickle这样写会报错:

with open(filename,"w")as fw:  pickle.dump(inputTree, fw)

TypeError: write() argument must be str, not bytes

原因为:Python3给open函数添加了名为encoding的新参数,而这个新参数的默认值却是‘utf-8’。这样在文件句柄上进行read和write操作时,系统就要求开发者必须传入包含Unicode字符的实例,而不接受包含二进制数据的bytes实例。

解决方法:

使用二进制模式("wb"、"rb")来开启待操作文件

你可能感兴趣的:(TypeError: write() argument must be str, not bytes)