Как хранить данные в программе 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.

Читайте также:
Плюсы и минусы антивирусных программ вакцин

Формат, разработанный на основе принципа максимально эффективного хранения данных в наборах данных (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
Читайте также:
Как в программе Microsoft access
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:

Читайте также:
Программа которая ищет музыку на Андроид

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