Можно ли получить имя файла базы данных полки, используя атрибут файлового объекта? (питон)

У меня есть скрипт python3, который создает несколько файлов базы данных с помощью shelve< /а> модуль. К вашему сведению, модуль полки является оболочкой для dbm, как видно из отложить исходный код. Метод shelf.open() используется для создания файла базы данных на диске и принимает в качестве аргумента желаемый выходной путь к файлу. Однако имя создаваемого файла зависит от доступных модулей dbm в системе пользователя. Это означает, что поведение не зависит от платформы, как описано в другом месте на SO: здесь.

Мне не удалось найти простой способ подобрать имена файлов. Я надеялся, что смогу получить доступ к именам файлов в качестве атрибутов объекта полки, как это можно сделать с помощью файла атрибут имени класса FileIO. Как я могу получить имя(я) файла(ов) объекта полки с помощью атрибута или метода объекта?

В противном случае я мог бы прибегнуть к передаче самоуничтожающегося tempfile в вызов shelve.open() вместо этого. Однако мне не ясно, как это сделать. Обратите внимание, что вопрос о временной полке был задан на SO здесь... но предоставленный ответ не будет работать, если пользователь в системе с модулем dbm, который будет присоединять суффикс fname.

Спасибо за ваше время.


person Lionel Brooks    schedule 11.09.2013    source источник


Ответы (1)


Я только что нашел этот ответ, в котором предлагается создать файлы полки во временном подкаталоге, а затем удалить весь каталог. Я думаю, что это лучшее решение, доступное на данный момент.

person Lionel Brooks    schedule 11.09.2013