Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 25, 2012 23:46:41

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Почему shelve.open('db_name') создает 3 файла?

Когда создавал файл с данными shelve.open('some_db') в python 2.7, то появлялся 1 файл(без расширения).
Под python 3.2 создаётся 3 файла(some_db.dat, some_db.bak, some_db.dir).
В оф. документации на этот счет ничего не нашел.

Почему создает 3 файла?
Для чего они нужны?
Это нормальное поведение?

Отредактировано buddha (Сен. 25, 2012 23:47:08)

Офлайн

#2 Сен. 26, 2012 07:50:56

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Почему shelve.open('db_name') создает 3 файла?

Документацию читать конечно же не модно.

http://docs.python.org/py3k/library/shelve.html#shelve.open

As a side-effect, an extension may be added to the filename and more than one file may be created.



Офлайн

#3 Сен. 26, 2012 11:27:32

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Почему shelve.open('db_name') создает 3 файла?

cutwater
Документацию читать конечно же не модно.

http://docs.python.org/py3k/library/shelve.html#shelve.open

As a side-effect, an extension may be added to the filename and more than one file may be created.

Перечитал…

Как побочный эффект, расширение может быть добавлено к имени файла и может быть создано больше одного файла

Это и в версии 2.7 интерпритатора написано. Но результат кода разный!!! Документация не раскрыла вопроса.
Вы сами знаете почему!!?
или лишь бы носом тыкнуть ,предварительно сам не разобравшись??

Офлайн

#4 Сен. 26, 2012 14:55:44

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Почему shelve.open('db_name') создает 3 файла?

buddha
Документация не раскрыла вопроса.

Более чем раскрыла вопрос “Это нормальное поведение?” Со второй версии реализация модуля или реализация бекенда могла измениться. Документация четко вас об этом предупреждает. Никто не дает Вам гарантий того что в 3.4 поведение не изменится еще раз.

Для чего они нужны можете посмотреть исходники или обратиться в google
например, http://stackoverflow.com/questions/4966871/how-do-you-erase-the-3-shelve-files-in-python-3

А тыкать вас носом полезно, авось поумнеете.



Отредактировано cutwater (Сен. 26, 2012 14:57:30)

Офлайн

#5 Сен. 26, 2012 15:09:56

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

Почему shelve.open('db_name') создает 3 файла?

Спасибо.

cutwater
А тыкать вас носом полезно, авось поумнеете.

Ну нельзя же так отыгрываться на других за свой негативный опыт…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version