Как сохранять и загружать данные в Python
Написал код — хочу чтобы те значения, которые пользователь подаёт в программу, в ней же и сохранялись для последующего воспроизведения при повторных запусках. Моё понимание: Как я понял, можно вызывать внутри кода текстовый файл для сохранения туда массивов информации и потом при повторном запуске программы открывать данный файл и считывать оттуда информацию. Слышал ещё о SQLite, но это для большого кол-ва данных вроде как. Сам вопрос: Можно ли без создания новых файлов или страничках на облаках/сайтах (хз) сохранять данные непосредственно внутри программы — к примеру я создам сам EXE файл с кодом. Я понимаю, вроде как звучит глупо, ведь при закрытии с кучей данных сам EXEшник будет расти в объёме, но возможно ли такое? И как в принципе программы сохраняют данные — неужели надо создавать доп. файлы?
Отслеживать
528 3 3 серебряных знака 18 18 бронзовых знаков
задан 17 фев в 4:48
21 3 3 бронзовых знака
Средство хранения файлов необходимо создать, так как все данные, что получает питон, лежат в «хранилище ОЗУ». После завершения программы, они потеряются. Как вариант — попробуйте использовать Redis, MySQL, SQLite
17 фев в 5:01
Зачем писать данные в файл с кодом? В чем разница? Всё равно данные нужно сохранить на диск в том или ином виде. Как сами и написали — сохраните их в отдельный файл. Можно текстовый, можно бинарный. В питоне есть библиотеки по работе с XML и JSON.
17 фев в 5:59
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Да, возможно сохранять данные непосредственно внутри программы на Python без создания дополнительных файлов или использования облачных/веб-сервисов.
Для этого в Python есть несколько способов хранения данных, например:
Использование переменных. Вы можете создавать переменные внутри программы и хранить данные в них. Это простой способ, но данные будут сохраняться только в памяти компьютера, и при закрытии программы они будут утеряны.
Использование модуля shelve. Shelve — это модуль Python, который позволяет сохранять и загружать словари Python на диске в виде файлов базы данных. Этот метод позволяет сохранять данные между запусками программы, не создавая дополнительных файлов.
Использование модуля pickle. Pickle — это модуль Python, который позволяет сериализовать и десериализовать Python-объекты. С помощью pickle вы можете сохранить любой объект Python в файл, а затем загрузить его обратно в программу.
Использование модуля configparser. Configparser — это модуль Python, который позволяет создавать и использовать конфигурационные файлы, чтобы хранить данные в определенном формате.
Каждый из этих способов имеет свои преимущества и недостатки, и выбор зависит от конкретной задачи. Например, если вам нужно сохранить только несколько значений, вы можете использовать переменные. Если вам нужно сохранять большие объемы данных между запусками программы, shelve может быть хорошим выбором. Если вам нужно сохранять объекты Python, pickle — лучший вариант.
Также стоит отметить, что сохранение данных непосредственно внутри EXE-файла не является хорошей практикой, так как это может привести к нестабильности программы и нарушению целостности данных. Лучше всего сохранять данные в отдельных файлах или базах данных, чтобы убедиться, что данные будут безопасно сохранены и не будут потеряны в случае сбоя программы или выключения компьютера.
Сохранение, загрузка и повторный вызов работы в окне Python
В окне Python есть возможность для изучения и экспериментирования с Python в приложении ArcGIS Desktop . Во многих случаях полезно сохранять проделанную в окне Python работу в файл, который можно будет использовать в следующих сеансах.
Содержимое окна Python можно сохранить в файл Python или текстовом файе. Щелкните окно Python правой кнопкой мыши и выберите Сохранить как (Save As) , чтобы сохранить код либо в файл Python ( .py ), либо в текстовый файл ( .txt ). При сохранении в файл Python можно сохранить только код. При сохранении в текстовом файле все содержимое окна Python, включая код, возвращаемые сообщения и командную строку ( >>> ), будет записано в выходной файл.

При сохранении кода из окна Python в выходной файл будет записано только то, что в данный момент находится в окне Python . Удаленные фрагменты не будут записаны в файл.
Загрузка в окно Python
Окно Python является интерактивным интерпретатором, который удобен для быстрого выполнения инструментов геообработки или других команд Python. Однако код, который уже был написан и сохранен в автономный скрипт или в файл Python, также можно загрузить в окно Python, изменить и выполнить. Ниже показан простой скрипт, который просматривает класс объектов и поле и создает уникальный список значений поля. Это достаточно простой пример, но ввод вручную всех 13 его строк в окно Python может занять продолжительное время. Вместо этого щелкните правой кнопкой в окне Python и выберите Загрузить (Load) . Выбранный вами код (сохраненный в автономном скрипте или как файл Python) будет немедленно загружен в окно Python . После загрузки в окно Python можно отредактировать положение класса объектов, имя поля или синтаксис, затем выполнить код, поместив курсор в конце кода и нажав клавишу ENTER .
Создает список уникальных значений поля на основе класса объектов и имени поля.
import arcpy featureclass = "C:/data/county.gdb/hospital" field = "Zip" valueList = [] rows = arcpy.da.SearchCursor(featureclass, [field]) for row in rows: valueList.append(row[0]) uniqueSet = set(valueList) uniqueList = list(uniqueSet) uniqueList.sort() print(uniqueList)
Повторный вызов кода Python
Строки кода, выполненные ранее, можно вызвать снова, используя клавиши стрелок вверх и вниз. Это позволяет вставить указанную строку в место текущего положения курсора. Строку кода можно отредактировать и выполнить, либо выполнить ее еще раз в неизменном виде.
Упаковка Python программы в EXE файл
Чтобы понять, зачем это может потребоваться, предположим, что вы написали программу на Python. И теперь нужно ее показать руководителю, заказчику или другу. И здесь сразу могут возникнуть трудности. Потому что принимаемая сторона вряд ли обладает познаниями в программировании и к тому же не имеет на компьютере установленного Python, чтобы иметь возможность запустить ваш код.
Гораздо проще заранее позаботиться о простоте запуска Python программы, и упаковать ее в исполняемый EXE файл. Преимущество такого файла в том, что он запускается любым пользователем на любом компьютере под управлением Windows. Даже если на компьютере не установлен Python.
Для упаковки программы будем использовать пакет PyInstaller и надстройку над ним auto-py-to-exe
Ссылки на документацию по данным пакетам:
PyInstaller генерирует EXE файл из командной строки. А auto-py-to-exe надстраивает над PyInstaller пользовательский интерфейс, в котором удобно выбирать различные параметры.
Установка пакетов для упаковки в EXE файл
Для установки пакетов, мы будем использовать pip — систему управления пакетами, написанными на Python.
-
- В поиске Windows набираем cmd
- Запускаем приложение Командная строка от имени администратора(ВАЖНО!)

- Набираем команды для установок пакетов и нажимаем Enter:
• pip install pyinstaller
• pip install auto-py-to-exe
- Дополнительные пакеты установлены.
Упаковка Python программы в EXE файл
Давайте упакуем с помощью установленных пакетов готовую программу A/B Калькулятор.
Для начала, посмотрим как она запускается в неупакованном виде. Открываем файл программы в редакторе Geany и нажимаем Выполнить (F5). Программа выполняется на фоне командной строки. И когда мы окно программы закрываем, окно консоли еще остается открытым.
Перед генерацией EXE файла подготовим директорию, куда он будет сохраняться. Например, на Рабочем столе создаем папку Генерация EXE

- Запускаем командную строку от администратора
- Вводим команду auto-py-to-exe
- В окне приложения производим настройки:
- Указываем путь к директории с исходным файлом программы
- Выбираем опцию Один файл
- Выбираем опцию Оконное приложение (скрыть консоль)
- Нажимаем Настройки и указываем путь к директории экспорта, куда будет сохранен готовый EXE файл
- Жмем кнопку Конвертировать PY в EXE
Некоторое время программа производит обработку. После окончания обработки появляется кнопка Открыть папку вывода . Нажимаем ее и видим в папке готовый EXE файл.

Запускаем EXE файл и проверяем работоспособность. Программа AB Калькулятора запустилась без использования консоли. Теперь файл программы можно пересылать для запуска абсолютно на любом компьютере.
Примечание. Если в процессе запуска EXE файлов возникают проблемы, проверьте, установлен ли Microsoft Visual C++ Redistributable. Если требуется его установка, найти его можно по ссылке .
Сохранение файлов с python
В данном посте хотелось бы предложить написать небольшое приложение, использующее графический интерфейс. Задача выбора подходящего инструмента для осуществления этой задумки может оказаться достаточно нетривиальной. Python поддерживает несколько графических библиотек:
— wxWidgest и интерфейс к этой библиотеке — wxPython. Наилучший выбор, если вы хотите, чтобы ваши приложения выглядели в любой ОС с любым графическим интерфейсом как родные. Самый большой минус на момент написания поста — недостаточно широкая документация. Впрочем, кто-то может с этим не согласиться.
— tkinter — Tk — самая простая и распространённая библиотека. Используется очень широко. Документация подробна и содержит всё необходимое для быстрого начала работы.
-PyQt — интерфейс к библиотеке Qt . Эта библиотека также переносима на Linux, Windows и MacOS. Хотя стоит отметить, что интерфейс программы, естественно, будет отличаться от «родных» приложений и только в случае со связкой Linux+KDE будет выглядеть как влитой. Тем не менее используется очень широко. Документация отличная. В написании кода, пожалуй, наиболее сложен.
PyGTK — как и предыдущий привязан к своей оконной системе. Не так распространён как три библиотеки, данные выше.
Разумеется, графических библиотек намного больше. Указанные здесь — основные. Автором рекомендуется выбирать между wxPython и Tkinter . Дабы использовать какую-либо библиотеку, нужно её установить (исключением является разве что OS Windows, где python, похоже, поставляется в чуть ли не полной комплектации). Разбираемый сегодня пример будет задействовать библиотеку tkinter и потребует установки модуля tk . Пользователи Linux могут найти его с помощью своего пакетного менеджера или собрать python с ключом tk (для gentoo).
Как это работает?
tkinter — программный слой поверх Tk , позволяющий сценариям на языке Python обращаться к библиотеке Tk , конструирующей и настраивающей интерфейсы и возвращающей управление обратно в сценарии Python, которые обрабатывают события, генерируемые пользователем (например, щелчки мышью). Таким образом, обращения к графическому интерфейсу из сценария Python направляются в tkinter, а затем в Tk; события, возникающие в графическо