Написать и прочитать список, Python Pickle - PullRequest
0 голосов
/ 27 августа 2018

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

Я пробовал это:

import tkinter as tk
from tkinter import ttk
import pickle

# window
win = tk.Tk()
win.title("menu")

List = []
newList = []

with open('data.txt', 'wb') as f:
    pickle.dump(List, f)

with open('data.txt', 'rb') as f:
    newList = pickle.load(f)

# button click event
def clickMe():
    List.append(name.get())
    numberChosen.configure(values=List)

# text box entry
ttk.Label(win, text="Eingabe:").grid(column=0, row=0)
name = tk.StringVar()
nameEntered = ttk.Entry(win, width=12, textvariable=name)
nameEntered.grid(column=0, row=1)   

# button
action = ttk.Button(win, text="Enter", command=clickMe)
action.grid(column=2, row=1)

# drop down menu
ttk.Label(win, text="Auswahl:").grid(column=1, row=0)
number = tk.StringVar()
numberChosen = ttk.Combobox(win, width=12)
numberChosen['values'] = [List]
numberChosen.grid(column=1, row=1)

win.mainloop()

1 Ответ

0 голосов
/ 27 августа 2018

Вам просто нужно сохранить список в файл после mainloop и загрузить его при запуске программы.

with open('data.txt', 'rb') as file:
    data = pickle.load(file)

...
win.mainloop()

with open('data.txt', 'wb') as file:
    pickle.dump(data, file)

Это загрузит список в начале и сохранит его после tkокно закрывается.

...