Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 31, 2017 20:31:40

Babbl_Boy
Зарегистрирован: 2017-10-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

Всем доброго вечера. Прохожу курс на Coursera и при выполнении одного из заданий столкнулся с проблемой, решить которую корректно не получается уже вот второй день.
Загружаю ключ-значение в файл .json. Записывается и читается. Однако при повторном вызове функции , значения просто перезаписываются.. Необходимо создать мини базу в json и обязательно с использованием созданного файла. И потом при каждом вызове файла передавать новые значения и они бы записывались . Звучит совсем не сложно, но проблема в том, что все перезаписывается…
Вот собственно код:

import json,os,tempfile,argparse
data = list()
storage_path = os.path.join(tempfile.gettempdir(), ‘storage.data’)
value = argparse.ArgumentParser()
value.add_argument('-k','–key')
value.add_argument('-v', ‘–val’)
storage = value.parse_args()


def join():
data1 = dict()
data.append(data1)
with open(storage_path,'w') as f:
f.write(str(data))
json.dump(data, open('storage.data', ‘w’))
print(json.load(open('storage.data', ‘r’)))


join()

Офлайн

#2 Окт. 31, 2017 21:04:10

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

Тут почитай за режимы…

Офлайн

#3 Окт. 31, 2017 21:14:30

Babbl_Boy
Зарегистрирован: 2017-10-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

Объясни поподробней пожалуйста.. я уже читал и не 1 раз

Офлайн

#4 Окт. 31, 2017 21:47:43

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

'w'- открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.
'a' - открытие на дозапись, информация добавляется в конец файла.

Офлайн

#5 Окт. 31, 2017 21:55:12

Babbl_Boy
Зарегистрирован: 2017-10-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

Если вместо ‘w’ поставить ‘a’ выдает вот такая ошибка

Romissevd
'w'- открытие на запись, содержимое файла удаляется, если файла не существует, создается новый.'a' - открытие на дозапись, информация добавляется в конец файла.
Если так сделать , Выдается ошибка

Прикреплённый файлы:
attachment Безымянный.png (21,4 KБ)

Офлайн

#6 Окт. 31, 2017 22:39:08

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2763
Репутация: +  185  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

 >>> import simplejson as jsp
>>> data = {1:1, 2:2, 3:3}
>>> jsp.dump(data, open("/home/rodegast/baza.json", "w"))
>>> data = jsp.load(open("/home/rodegast/baza.json"))
>>> data
{'1': 1, '3': 3, '2': 2}
>>> data.update({4:4})
>>> jsp.dump(data, open("/home/rodegast/baza.json", "w"))
Убери f.write(str(data)) тогда он перезаписывать не будет.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Окт. 31, 2017 22:42:38)

Офлайн

#7 Окт. 31, 2017 23:00:08

Babbl_Boy
Зарегистрирован: 2017-10-31
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите советом новичку!!! Проблема с tempfile и argparse

Rodegast
убрал, не помогает

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version