Как преобразовать байтовый массив (блоб) обратно в исходный файл? - PullRequest
0 голосов
/ 29 марта 2019

В настоящее время я работаю над анализом моделирования темы с помощью LDAmodel в Python. В конце концов, отображается веб-сайт, где клиенты могут выбрать дату начала и окончания и посмотреть темы, касающиеся четвертой промышленной революции. Чтобы ускорить работу сайта, я делаю ежедневные, еженедельные, ежемесячные и ежегодные анализы ldamodel, которые сохраняются в zip-файле, преобразуются в байтовый массив и хранятся в виде большого двоичного объекта на сервере sql (обязательно для владельца продукта).

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

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

def load_model():
connection = pymysql.connect(host='localhost', user='root', password='Flieren#3', db='analysis_results')
cursor = connection.cursor()
cursor.execute("SELECT `LDAmodel` FROM `results`")
file = cursor.fetchone()

# Here the file should be converted back to zip. 

temp = tempfile.mkdtemp()
os.mkdir(temp + os.sep + 'loadedfiles')
shutil.unpack_archive(file, extract_dir=temp + os.sep + 'loadedfiles' + '2019-03-01_2019-03-01_topic_model.zip')
models.LdaModel.load(temp + os.sep + 'loadedfiles' + '2019-03-01_2019-03-01_topic_model.zip')
...