Как я получаю доступ к данным программно (загрузите соленый файл), который хранится как статический файл?

как это решение, я использую теперь:

У меня есть 1 МБ .dbf файл в том же каталоге всех моих .py модулей. В main.py Я имею

import tools

В tool.py код:

the_list_that_never_changes = loadDbf(file).variables['CNTYIDFP'].

Так the_list_that_never_changes только загружается однажды и всегда находится в памяти, готовой использоваться... корректный?

1
задан b_dev 29 July 2010 в 17:10
поделиться

2 ответа

Статические файлы хранятся отдельно от файлов приложений. Если вам нужно загрузить data.pkl из main.py, то не отмечайте его как статический файл, и он будет доступен main.py как любой другой файл приложения.

Ссылка: Handlers For Static Files в Application Configuration.


Альтернатива: Почему бы не определить информацию, хранящуюся в data.pkl, как глобальную переменную в вашем исходном тексте Python? Тогда вам не придется заниматься чтением файла и десериализацией его маринованного содержимого, и это будет немного быстрее. Это также позволит легко воспользоваться преимуществами кэширования приложений - ваши данные будут загружены один раз, а затем кэшированы для использования последующими запросами.

2
ответ дан 2 September 2019 в 22:43
поделиться

Поместите data.pkl в тот же каталог с main.py и используйте что-нибудь вроде этих строк:

pickle_path = os.path.join(os.path.dirname(__file__), 'data.pkl')
f = open(pickle_path)
data = pickle.load(f)

Не добавляйте data.pkl - app.yaml .

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

0
ответ дан 2 September 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: