Possible Duplicate:
builtins.TypeError: must be str, not bytes
我编写了一个程序,将dict写入文件,并且在Python 2.7中运行良好,但是现在在Python 3中,我收到了TypeError: 'str' does not support the buffer interface
和TypeError: must be str, not bytes
代码已更新
输入:dir的路径,文件名(例如!hamers.txt
)和新字典
输出:无
效果:使用字典生成新文件。检查文件是否存在,然后合并两个字典(现有字典和新字典)。
def generate_file_from_dict(self, path, fname, my_new_dict):
mfile = self.add_slash(path)+fname
if os.path.exists(mfile):
mfile = open(mfile, 'rb')
my_existing_dict = pickle.load(mfile)
my_new_dict = dict(my_existing_dict.items() + my_new_dict.items())
mfile.close()
mfile = open(self.add_slash(path)+fname, 'wb+')
pickle.dump(my_new_dict, mfile)
mfile.close()
现在它
my_existing_dict = pickle.load(mfile)
EOFError
最佳答案
该文件应以二进制打开
mfile = open(mfile,'rb')
mfile = open(self.add_slash(path)+fname, 'wb+')
关于python - EOFError Python 2.7到3的迁移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13360866/