Possible Duplicate:
builtins.TypeError: must be str, not bytesEOFError Python 2.7 3 миграции
Я написал программу, чтобы написать Dict в файл и в Python 2.7, работает хорошо, но теперь в Python 3 я получаю TypeError: 'str' does not support the buffer interface
и TypeError: must be str, not bytes
КОД ОБНОВЛЕНО
Входы: путь к директории, имя файла (!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
Я всегда озадачены такого рода вопрос, не ошибка сказать, что именно проблема в? Он говорит, что '' должен быть str, а не байтами ''. Как иначе это можно интерпретировать, а означать, что вы пытаетесь передать «байты», когда вам нужно передать «str». – SilentGhost
Хммм ... может быть, я прошу, потому что на Python 2.7 он отлично работает !? – JohnDow
Можете ли вы читать документы? – SilentGhost