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")来开启待操作文件