Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 30.09.2019, 23:51   #1
Ebanan_1337
Новичок
 
Регистрация: 30.09.2019
Сообщений: 1
Репутация: 10
По умолчанию Нашёл решение, но не могу в нём разобраться

Нашёл решение для задачи на coursera, но не могу в нём нормально разобраться. Не могу банально понять, как работает программа.
Задача заключалась в том, чтобы сделать хранилище данных с key-value.




Код:
import argparse
import json
import os
import tempfile


storage_path = os.path.join(tempfile.gettempdir(), 'storage.data')


def clear():
    os.remove(storage_path)


def get_data():
    if not os.path.exists(storage_path):
        return {}

    with open(storage_path, 'r') as f:
        raw_data = f.read()
        if raw_data:
            return json.loads(raw_data)

        return {}


def put(key, value):
    data = get_data()
    if key in data:
        data[key].append(value)
    else:
        data[key] = [value]

    with open(storage_path, 'w') as f:
        f.write(json.dumps(data))


def get(key):
    data = get_data()
    return data.get(key)


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--key', help='Key')
    parser.add_argument('--val', help='Value')
    parser.add_argument('--clear', action='store_true', help='Clear')

    args = parser.parse_args()

    if args.clear:
        clear()
    elif args.key and args.val:
        put(args.key, args.val)
    elif args.key:
        print(get(args.key))
    else:
        print('Wrong command')

_____
Код программы нужно выделять (форматировать) тегами [CODE] [/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Ebanan_1337; 01.10.2019 в 00:16.
Ebanan_1337 вне форума   Ответить с цитированием
Старый 02.10.2019, 12:39   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,250
Репутация: 3739

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Ebanan_1337 Посмотреть сообщение
Нашёл решение для задачи на coursera, но не могу в нём нормально разобраться.
решайте сами по материалам курса.

или хотя бы задавайте вопросы.
Alex11223 на форуме   Ответить с цитированием
Старый 02.10.2019, 12:51   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,872
Репутация: 2668
По умолчанию

Извините, а в чем тут разбираться? Тут же простейшая работа с json...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу разобраться... Алодем Общие вопросы C/C++ 2 20.04.2013 23:08
НЕ могу разобраться Smagulov85 БД в Delphi 9 29.09.2010 16:13
Не могу разобраться с css k2name HTML и CSS 2 31.05.2010 13:23
Не могу разобраться semAz Assembler 2 10.03.2010 18:43
Не могу разобраться Zmaxer Помощь студентам 24 10.10.2009 18:52


10:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.