Как хранить данные в программе python

Хочу сохранить некоторые данные пользователя моей программы. Например, настройки программы, которые юзер укажет по-своему. Стоит ли использовать Json файлы? Или для простой программы есть какие-то другие способы? Ну, например, хочу сохранить что-то подобное:

path = ‘C:/Users/user’ theme = ‘white’ sounds = True

Это для примера. Просто текстовый файл делать не хочу, и не совсем понимаю, как сохранить данные для программы UPD: По итогу у меня получилось что-то подобное, не знаю, насколько это верное решение, но у меня теперь всё работает: Main.py

import configparser GENERAL = < ‘config_file’: ‘config.ini’ >configuration = < ‘Game_path’: », ‘Direct_path’: », ‘Theme’: ‘Light’ ># Data write, Data read # Path — choose data element # obj — object to replace # state — ‘w’= write (replace data element) def data(path=None, obj=None, state=None): config = configparser.ConfigParser() config.read(GENERAL[‘config_file’]) if state == ‘w’: # Change values in config.ini config[path[0]][path[1]] = obj with open(GENERAL[‘config_file’], state) as configfile: config.write(configfile) else: # Your code to read print(config[‘Configuration’][‘Theme’])
[Configuration] game_path = 0 direct_path = 0 theme = Dark

Источник: ru.stackoverflow.com

Python — Использование JSON — хранение и использование данных

Эффективное хранение данных с помощью Feather в Python

Язык программирования Python

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

Однако это тоже проблема, поскольку файл CSV занимает слишком много места, а процессы чтения и записи происходят медленно. Чтобы решить эту проблему и сделать обмен данными более эффективным, был разработан формат Feather.

Читайте также:
Как удалить программу на macbook air

Формат, разработанный на основе принципа максимально эффективного хранения данных в наборах данных (Data Frames). Этот формат также можно использовать в R или Julia. Что позволяет эффективно хранить данные.

Feather в Pandas

Как прочитать JSON-формат в Python?

Для чтения данных из JSON-объектов используются методы load и loads модуля json. Первый считывает файл в JSON-формате и возвращает python-объекты. Второй — отвечает за считывание строки в JSON-формате и тоже возвращает python-объекты

#метод load (обычное чтение json-файла)

with open(‘alco_json.json’) as file:
data = json.load(file)
print(type(data)) #класс — словарь

for section, commands in data.items():
print(section)
print(commands)

КАК ХРАНИТЬ КЛЮЧИ И ПАРОЛИ | Python 3, Питон 3

#метод loads (чтение json-строк)

with open(‘alco_json.json’) as file:
filedata = file.read()
print(type(filedata)) #класс — строка
object = json.loads(filedata)
print(type(object)) #класс — словарь

for section, commands in object.items():
print(section)
print(commands)

Как записать JSON-формат в Python?

Методы dump и dumps из модуля json помогают нам записать данные в формате json на Питоне. Dump сохраняет python-объект в файл .json. Dumps — возвращает строку в JSON-формате — например, для последующей ее передачи в API. Методы dump() и dumps() пользуются одними и теми же аргументами ключевых слов. Формат JSON может не совпадать с исходным python-форматом.

Например, кортежи при записи в JSON конвертируются в списки.

with open(‘alco_json.json’, ‘w’) as file:
file.write(json.dumps(jsonwrite))

with open(‘alco_json.json’) as file:
print(file.read())

jsonwrite = < #метод dump
«action»: «msg»,
«to»: «morisk»,
«from»: «me»,
«encoding»: «ascii»,
«message»: «Buy Whisky»
>

with open(‘alco_json.json’, ‘w’) as file:
json.dump(jsonwrite, file, sort_keys=True, indent=2)

with open(‘alco_json.json’) as file:
print(file.read())

Как преобразуются данные при сериализации JSON?

Python JSON
dict object
list, tuple array
str string
int, float number
True true
False false
None null
Читайте также:
Этап включающий разработку алгоритмов для решения задачи составление программ на эвм
JSON Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False

При использовании формата JSON есть ограничение: нет возможности сохранить словарь, где в качестве ключей — кортежи

Формат YAML

YAML («Ain’t Markup Language») — формат сериализации данных, который считают максимально user-friendly по синтаксису и удобству форматирования данных. Структура и синтаксис практически такой же, как на Python — используются отступы, сделанные с помощью пробелов (использовать tab нельзя). Список в YAML — структурирован.

При этом каждый элемент записывается в своей строке и маркируется символом «- » (обязательно с пробелом после него). Все строки набора должны иметь одинаковую величину отступа. Все эти же правила справедливы и для типа данных «словарь» (dict). В YAML так же могут быть комбинации элементов в словаре (dict) каждому ключу будет соответствовать набор элементов в виде списка (list)

# список с элементами (строки)
[‘action’, ‘to’, ‘from’, ‘encoding’, ‘message’]

# структурированный список
— action
— to
— from
— encoding
— message

# строки в словаре

# словарь в виде блока
‘action’: ‘msg’
‘to’: ‘account_name’

# спецсимволы в строках
command: «action | to»

# примеры комбинаций элементов
# словарь с элементами-списками
message:
— msg_1
— msg_2
— msg_3
to:
— account_1
— account_2
— account_3

# список словарей
— action: msg_1
to: account_1
— action: msg_2
to: account_2

Как считать YAML-формат?

Для работы с YAML, как и с другими типами данных, в Python заготовлен отдельный модуль — yaml

with open(‘alco_yaml_listdict.yaml’) as file:
data = yaml.load(file, Loader=yaml.FullLoader)
print(data)

Запись данных в .yaml-файл

Как записать обычный python-объект в .yaml-файл? Предположим, что нам нужен записать словарь с элементами в виде списка в формате YAML:

Читайте также:
Запуск программы невозможен так как отсутствует vcruntime140 dll ГТА 5

alco_list = [‘lawsons’,
‘captain morgan’,
‘bells’]

zapivon_list = [‘coca-cola’,
‘pepsi’,
‘not_zapivon’]

with open(‘coctail.yaml’, ‘w’) as file:
yaml.dump(importyaml, file, default_flow_style=False)

with open(‘coctail.yaml’) as f_n:
print(f_n.read())

Источник: digital2.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru