Possible Duplicate:
builtins.TypeError: must be str, not bytes




我编写了一个程序,将dict写入文件,并且在Python 2.7中运行良好,但是现在在Python 3中,我收到了TypeError: 'str' does not support the buffer interfaceTypeError: 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/

10-16 17:36
查看更多