1

重複の可能性:
builtins.TypeError:バイトではなくstrである必要があります

私はファイルにdictを書くプログラムを書きました、そしてPython 2.7でそれはうまくいきます、しかし今Python3で私は受け取りますTypeError: 'str' does not support the buffer interfaceそしてTypeError: must be str, not bytes

コードが更新されました

入力:dirへのパス、ファイル名(!hamers.txtたとえば)、新しい辞書

出力:なし

効果:辞書を使用して新しいファイルを生成します。ファイルが存在するかどうかを確認してから、2つの辞書(既存と新規)をマージします。

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
4

1 に答える 1

2

ファイルはバイナリで開く必要があります

mfile = open(mfile,'rb')

mfile = open(self.add_slash(path)+fname, 'wb+')
于 2012-11-13T12:47:27.373 に答える