Python2随机写入二进制文件: with open('/python2/random.bin','w') as f: f.write(os.urandom(10)) 但使用Python3会报错: TypeError:must be str, not bytes 原因为:Python3给open函数添加了名为encoding的新参数,而这个新参数的默认值却是'utf-8'.这样在文件句柄上进行read和write操作时,系统就要求开发者必须传入包含Unicode字符的实例,而不接受包含二进制数…
在用二进制模式打开文件情况下,写入一个str对象时报错:TypeError: a bytes-like object is required, not 'str' 出现该问题是因为Python严格区分二进制和文本文件的操作,二进制文件打开模式下写入的对象类型不能是str类型,只能是bytes类型,解决办法非常的简单,就是将str转换成bytes类型,具体实现有两种方案: 用encode()方法将str类型转换成bytes类型: fp.write(fd,text.encode()) #text为要…