Как сохранять и загружать данные в Python

Рейтинг: 2Ответов: 3Опубликовано: 17.02.2023

Написал код — хочу чтобы те значения, которые пользователь подаёт в программу, в ней же и сохранялись для последующего воспроизведения при повторных запусках.

Моё понимание: Как я понял, можно вызывать внутри кода текстовый файл для сохранения туда массивов информации и потом при повторном запуске программы открывать данный файл и считывать оттуда информацию. Слышал ещё о SQLite, но это для большого кол-ва данных вроде как.

Сам вопрос: Можно ли без создания новых файлов или страничках на облаках/сайтах (хз) сохранять данные непосредственно внутри программы - к примеру я создам сам EXE файл с кодом. Я понимаю, вроде как звучит глупо, ведь при закрытии с кучей данных сам EXEшник будет расти в объёме, но возможно ли такое? И как в принципе программы сохраняют данные — неужели надо создавать доп. файлы?

Ответы

▲ 3Принят

Да, возможно сохранять данные непосредственно внутри программы на Python без создания дополнительных файлов или использования облачных/веб-сервисов.

Для этого в Python есть несколько способов хранения данных, например:

Использование переменных. Вы можете создавать переменные внутри программы и хранить данные в них. Это простой способ, но данные будут сохраняться только в памяти компьютера, и при закрытии программы они будут утеряны.

Использование модуля shelve. Shelve - это модуль Python, который позволяет сохранять и загружать словари Python на диске в виде файлов базы данных. Этот метод позволяет сохранять данные между запусками программы, не создавая дополнительных файлов.

Использование модуля pickle. Pickle - это модуль Python, который позволяет сериализовать и десериализовать Python-объекты. С помощью pickle вы можете сохранить любой объект Python в файл, а затем загрузить его обратно в программу.

Использование модуля configparser. Configparser - это модуль Python, который позволяет создавать и использовать конфигурационные файлы, чтобы хранить данные в определенном формате.

Каждый из этих способов имеет свои преимущества и недостатки, и выбор зависит от конкретной задачи. Например, если вам нужно сохранить только несколько значений, вы можете использовать переменные. Если вам нужно сохранять большие объемы данных между запусками программы, shelve может быть хорошим выбором. Если вам нужно сохранять объекты Python, pickle - лучший вариант.

Также стоит отметить, что сохранение данных непосредственно внутри EXE-файла не является хорошей практикой, так как это может привести к нестабильности программы и нарушению целостности данных. Лучше всего сохранять данные в отдельных файлах или базах данных, чтобы убедиться, что данные будут безопасно сохранены и не будут потеряны в случае сбоя программы или выключения компьютера.

▲ 0

Сохранить как таблицу в отдельный файл .csv или .txt. Как вариант - удалённое хранилище MySQL/PSQL. Иначе ни как, если процесс программы завершается.

▲ 0

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

Нет, такое невозможно хотя бы по той простой причине, что Windows не даст вам перезаписать запущенный файл. Т.е. исполняемый файл сам себя перезаписать не может в силу особенностей системы.