У меня есть данные, хранящиеся в файле хранения, созданного с питоном 2,7Используйте питона 2 полки в питона 3
Когда я пытаюсь получить доступ к файлу из питона 3.4, я получаю сообщение об ошибке:
>>> import shelve
>>> population=shelve.open('shelved.shelf')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\lib\shelve.py", line 239, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "C:\Python34\lib\shelve.py", line 223, in __init__
Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
File "C:\Python34\lib\dbm\__init__.py", line 88, in open
raise error[0]("db type could not be determined")
dbm.error: db type could not be determined
I «Я все еще могу получить доступ к полке без проблем в python 2.7, поэтому, похоже, проблема обратной совместимости. Есть ли способ прямого доступа к старому формату с новой версией python?
Yup, я могу воспроизвести это. – matsjoyce
Не можете ли вы просто преобразовать источник в 3, используя инструмент [2to3] (https://docs.python.org/2/library/2to3.html)? –