Уведомления

Группа в Telegram: @pythonsu

#1 Июль 21, 2016 15:50:22

SyraXXX
Зарегистрирован: 2016-07-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Cохранение

Добрый вечер! У меня такая проблема, создал я значит телефонную книгу(бабушка попросила ). Номера добавляются и удаляются если нажать соответствующие кнопки, НО! Когда я закрываю программу, то при следующем открытии вся информация пропадает
Как сделать так, чтобы всё что я вписал сохранилось? Я python изучаю недавно. Ниже оставлю код:
from tkinter import*

def add():
name = entry_name.get()
phone = entry_phone.get()
if name == “” and phone == “”:
name_error = “Не вписано имя!”
phone_error = “Не вписан телефон!”
elif name == “”:
name_error = “Не вписано имя!”
phone_error = “”
elif phone == “”:
name_error = “”
phone_error = “Не вписан телефон!”
else:
lb.insert(END, name + “: ” + phone)
def delete():
select = lb.curselection()
index = select
lb.delete(index) #Все что выше, это добавление и удаление номеров и имён.

wn = Tk()
wn.title(“Телефонная книга”)
wn.geometry(“800x800”) #Окно

frame = Frame(wn)
label = Label(frame, text=“Список контактов: ”, font“Arial”, 20))
label.pack()
frame.pack() #Просто текст “Список контактов: ”

frame1 = Frame(wn)
label_name = Label(frame1, text=“Имя: ”, font“Arial”, 18))
label_name.grid(row=0, column=0)
entry_name = Entry(frame1, width=70)
entry_name.grid(row=0, column=1) #Текст “Имя: ” и поле для него

name_error = Label(frame1, text=“”, fg=“red”)
name_error.grid(row=1, column=1)

label_phone = Label(frame1, text=“Телефон: ”, font“Arial”, 18))
label_phone.grid(row=2, column=0)
entry_phone = Entry(frame1, width=70)
entry_phone.grid(row=2, column=1)
phone_error = Label(frame1, text=“”, fg=“red”)
phone_error.grid(row=3, column=1)
frame1.pack() #Текст “Телефон: ” и поле для него

frame2 = Frame(wn)
lb = Listbox(frame2, height=20, width=30, font“Arial”, 18))
lb.pack() #Это листбокс
frame2.pack()

frame3 = Frame(wn)
button = Button(frame3, text=“Добавить”, command=add)
button.grid(row=0, column=0)
button = Button(frame3, text=“Удалить”, command=delete)
button.grid(row=0, column=1) #Это кнопки добавить и удалить
frame3.pack()



Отредактировано SyraXXX (Июль 21, 2016 16:35:12)

Офлайн

#2 Июль 21, 2016 15:58:08

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Cохранение

1. Заверните код в теги. Ничего же не понятно.
2. Для начинающего и телефонной книги сойдет и модуль shelve.

Офлайн

#3 Июль 21, 2016 17:36:59

SyraXXX
Зарегистрирован: 2016-07-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Cохранение

4kpt_IV
1. Заверните код в теги. Ничего же не понятно.2. Для начинающего и телефонной книги сойдет и модуль shelve.
А как сделать чтобы он сохранял в отдельный файл?
Ведь у меня в программе откроется окно, в нем будет две строки “Имя” и “Телефон”
Можно ли чтобы он записывал имя и телефон которые я вписываю в отдельный файл? И как это сделать?

Офлайн

#4 Июль 21, 2016 20:58:32

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Cохранение

SyraXXX
имя и телефон которые я вписываю в отдельный файл?
Отдельный от чего? Сейчас вы не делали ни малейшей попытки записать данные, посему непонятно от чего вы отделяетесь.

Кроме shelve можете использовать модуль pickle. Вот вам пример
https://wiki.python.org/moin/UsingPickle



Отредактировано doza_and (Июль 21, 2016 20:59:28)

Офлайн

#5 Июль 22, 2016 00:54:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Cохранение

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



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version