Предпочтительный способ хранения / извлечения данных Python - PullRequest
3 голосов
/ 24 января 2010

Я хотел бы включить файлы данных в пакет Python. Наилучшее место, чтобы поместить их в фактическую упаковку, как предложено здесь , т.е.

setup.py
src/
    mypkg/
        __init__.py
        module.py
        data/
            tables.dat
            spoons.dat
            forks.dat

или есть лучший способ сделать это? Каков наилучший способ получить файл данных из Python? Должен ли я использовать

mypkg.__path__ + 'data/tables.dat'

например, или я должен использовать

pkgutil.getdata('mypkg','tables.dat')

или еще раз, есть ли другой лучший способ сделать это?

Вообще говоря, каков текущий предпочтительный способ работы с данными внутри пакетов Python?

Ответы [ 2 ]

3 голосов
/ 24 января 2010

pkgutil означает, что вы можете загрузить данные, даже если пакет установлен в ZIP-файл, поэтому предпочтительно, если вы хотите это поддерживать. Хорошо хранить его в таком каталоге, я делаю это постоянно. :)

0 голосов
/ 24 января 2010

Вы должны хранить ваши данные как структуру данных Python через модуль Pickle. Таким образом, когда вы вызываете его (загружаете), данные готовы к использованию, и вам не нужно обрабатывать их в каждом скрипте.

Что касается местоположения, то имеет смысл хранить его таким образом, чтобы он был прозрачным и понятным для пользователя, мне кажется следующее интуитивно понятным:

from package import data
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...