重新启动程序后将列表附加到泡菜数据中

用户名

每次我重新启动程序时,它都会显示以前附加的列表和腌制的列表。当我尝试将新数据添加到列表时,会出现问题。删除先前存储的数据,然后腌制新数据。我真的很困惑,并且一直在努力解决这一问题长达2天。任何帮助都将是惊人的,谢谢!

关于我的程序的背景:我正在尝试制作一个gui,使我能够轻松保存各种类型的数据,以便以后可以使用该数据进行可视化表示。

这是我的整个程序:

import pickle
import os
os.system("clear")
import tkinter as tk

win = tk.Tk()
win.title("first gui")
#Program
#Functions
tips = []
days = []
amount_of_cars = []
weather = []
temperature = []



def add_all_stuff():
    pickle1 = open("tips.txt","wb")
    pickle2 = open("days.txt","wb")
    pickle3 = open("cars.txt","wb")
    pickle4 = open("weather.txt","wb")
    pickle5 = open("temperature.txt","wb")
    a1=tips_ask.get()
    a2=days_ask.get()
    a3=cars_ask.get()
    a4=weather_ask.get()
    a5=temperature_ask.get()
    print(temperature_ask.get())
    print(weather_ask.get())
    print(cars_ask.get())
    print(days_ask.get())
    print(tips_ask.get())
    tips.append(a1)
    days.append(a2)
    amount_of_cars.append(a3)
    weather.append(a4)
    temperature.append(a5)
    print(tips)
    print(days)
    print(amount_of_cars)
    print(weather)
    print(temperature)
    #pickle dumps
    pickle.dump(tips, pickle1)
    pickle1.close

    pickle.dump(days, pickle2)
    pickle2.close

    pickle.dump(tips, pickle3)
    pickle3.close

    pickle.dump(tips, pickle4)
    pickle4.close

    pickle.dump(tips, pickle5)
    pickle5.close

def show_lists():
    pickle_in1 = open("tips.txt", "rb")
    tips = pickle.load(pickle_in1)
    print(tips)

#labels
tk.Label(win, text = "menu").grid(row=0)
tk.Label(win, text= "Tips").grid(row=1)
tk.Label(win, text= "Day").grid(row=2)
tk.Label(win, text= "Amount of Cars").grid(row=3)
tk.Label(win, text= "Weather").grid(row=4)
tk.Label(win, text= "Temperature").grid(row=5)
#entryboxes
tips_ask = tk.Entry(win)
tips_ask.grid(row=1, column=1)

days_ask = tk.Entry(win)
days_ask.grid(row=2, column=1)

cars_ask = tk.Entry(win)
cars_ask.grid(row=3, column=1)

weather_ask = tk.Entry(win)
weather_ask.grid(row=4, column=1)

temperature_ask = tk.Entry(win)
temperature_ask.grid(row=5, column=1)
#Buttons
tk.Button(win, text="add", command = add_all_stuff).grid(row=6, column = 1)
tk.Button(win, text="View saved lists", command = show_lists).grid(row=6, column=2)
win.mainloop()

压迫者

您需要先读取泡菜数据。您正在打开要写入的文件,但在此之前未读取数据到要追加到的变量中。打开“ wb”将覆盖文件。所以

    pickle1 = open("tips.txt","wb")

删除并打开一个空文件进行写入。

你可以加

def add_all_stuff():
    tips = open("tips.txt","rb")
    days = open("days.txt","rb")
    amount_of_cars = open("cars.txt","rb")
    weather = open("weather.txt","rb")
    temperature = open("temperature.txt","rb")
    #... the rest of your code, that should help

更新:这是一个即使关闭也可以运行的完整程序:

import pickle
import os
os.system("clear")
import tkinter as tk

win = tk.Tk()
win.title("first gui")
#Program
#Functions
tips = []
days = []
amount_of_cars = []
weather = []
temperature = []


def get_make_pickle_data(filename):
   if os.path.isfile(filename):
       pickle_data = pickle.load( open( filename, "rb" ) )
   else:
       pickle_data = []
       pickle.dump( pickle_data, open( filename, "wb" ) )
   return pickle_data


def add_all_stuff():

    tips=get_make_pickle_data('tips.txt')
    days=get_make_pickle_data('days.txt')
    amount_of_cars=get_make_pickle_data('amount_of_cars.txt')
    weather=get_make_pickle_data('weather.txt')
    temperature=get_make_pickle_data('temperature.txt')

    a1=tips_ask.get()
    a2=days_ask.get()
    a3=cars_ask.get()
    a4=weather_ask.get()
    a5=temperature_ask.get()
    print(temperature_ask.get())
    print(weather_ask.get())
    print(cars_ask.get())
    print(days_ask.get())
    print(tips_ask.get())
    tips.append(a1)
    days.append(a2)
    amount_of_cars.append(a3)
    weather.append(a4)
    temperature.append(a5)
    print(tips)
    print(days)
    print(amount_of_cars)
    print(weather)
    print(temperature)
    #pickle dumps


    pickle1 = open("tips.txt","wb")
    pickle2 = open("days.txt","wb")
    pickle3 = open("amount_of_cars.txt","wb")
    pickle4 = open("weather.txt","wb")
    pickle5 = open("temperature.txt","wb")


    pickle.dump(tips, pickle1)
    pickle1.close

    pickle.dump(days, pickle2)
    pickle2.close

    pickle.dump(amount_of_cars, pickle3)
    pickle3.close

    pickle.dump(weather, pickle4)
    pickle4.close

    pickle.dump(temperature, pickle5)
    pickle5.close

def show_lists():
    tips=get_make_pickle_data('tips.txt')
    days=get_make_pickle_data('days.txt')
    amount_of_cars=get_make_pickle_data('amount_of_cars.txt')
    weather=get_make_pickle_data('weather.txt')
    temperature=get_make_pickle_data('temperature.txt')
    print(tips,days,amount_of_cars,weather,temperature)

#labels
tk.Label(win, text = "menu").grid(row=0)
tk.Label(win, text= "Tips").grid(row=1)
tk.Label(win, text= "Day").grid(row=2)
tk.Label(win, text= "Amount of Cars").grid(row=3)
tk.Label(win, text= "Weather").grid(row=4)
tk.Label(win, text= "Temperature").grid(row=5)
#entryboxes
tips_ask = tk.Entry(win)
tips_ask.grid(row=1, column=1)

days_ask = tk.Entry(win)
days_ask.grid(row=2, column=1)

cars_ask = tk.Entry(win)
cars_ask.grid(row=3, column=1)

weather_ask = tk.Entry(win)
weather_ask.grid(row=4, column=1)

temperature_ask = tk.Entry(win)
temperature_ask.grid(row=5, column=1)
#Buttons
tk.Button(win, text="add", command = add_all_stuff).grid(row=6, column = 1)
tk.Button(win, text="View saved lists", command = show_lists).grid(row=6, column=2)
win.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新启动程序中的记录列表

来自分类Dev

从列表重新启动后,实体框架丢失数据

来自分类Dev

我如何知道docker守护程序重新启动后哪个docker将重新启动

来自分类Dev

重新启动应用程序后,SQLite 数据消失了

来自分类Dev

重新启动应用程序后,SQLite中未保留数据

来自分类Dev

从程序中重新启动

来自分类Dev

重新启动或销毁后,Vagrant中的数据丢失

来自分类Dev

重新启动或销毁后,Vagrant中的数据丢失

来自分类Dev

重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

来自分类Dev

重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

来自分类Dev

启动外部活动后,Xamarin.Forms Android应用程序将重新启动

来自分类Dev

重新启动应用程序后,OSX应用程序将失去读取目录的权限

来自分类Dev

单击应用程序图标打开后,Android应用程序将重新启动

来自分类Dev

单击应用程序图标打开后,Android应用程序将重新启动

来自分类Dev

将数据附加到 arangodb 中的嵌套列表(子列表)

来自分类Dev

重新启动应用程序后从SharedPreferences恢复时,Set <String>丢失数据

来自分类Dev

重新启动应用程序后,为什么我的数据没有保存到CoreData?

来自分类Dev

重新启动应用程序后,SQLite丢失数据(插入,更新)

来自分类Dev

更改数据值后如何重新启动处理程序?

来自分类Dev

Visual Studio 2013在将数据源添加到ListView时重新启动

来自分类Dev

重新启动应用程序后,ASP.NET 5 Identity 3用户将注销

来自分类Dev

退出程序后可以重新启动程序吗?

来自分类Dev

关闭程序后如何自动重新启动程序

来自分类Dev

重新将程序附加到标准输入

来自分类Dev

将事件处理程序附加到存储在列表中的事件

来自分类Dev

CLLocationManager startMonitoringForRegion:设备重新启动后不重新启动应用程序

来自分类Dev

在Python中超出范围后,如何重新启动列表?

来自分类Dev

仅在重新启动应用程序后,Sharedpreferences中的值才可用

来自分类Dev

更新gem后,无法在openshift中重新启动应用程序

Related 相关文章

  1. 1

    重新启动程序中的记录列表

  2. 2

    从列表重新启动后,实体框架丢失数据

  3. 3

    我如何知道docker守护程序重新启动后哪个docker将重新启动

  4. 4

    重新启动应用程序后,SQLite 数据消失了

  5. 5

    重新启动应用程序后,SQLite中未保留数据

  6. 6

    从程序中重新启动

  7. 7

    重新启动或销毁后,Vagrant中的数据丢失

  8. 8

    重新启动或销毁后,Vagrant中的数据丢失

  9. 9

    重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

  10. 10

    重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

  11. 11

    启动外部活动后,Xamarin.Forms Android应用程序将重新启动

  12. 12

    重新启动应用程序后,OSX应用程序将失去读取目录的权限

  13. 13

    单击应用程序图标打开后,Android应用程序将重新启动

  14. 14

    单击应用程序图标打开后,Android应用程序将重新启动

  15. 15

    将数据附加到 arangodb 中的嵌套列表(子列表)

  16. 16

    重新启动应用程序后从SharedPreferences恢复时,Set <String>丢失数据

  17. 17

    重新启动应用程序后,为什么我的数据没有保存到CoreData?

  18. 18

    重新启动应用程序后,SQLite丢失数据(插入,更新)

  19. 19

    更改数据值后如何重新启动处理程序?

  20. 20

    Visual Studio 2013在将数据源添加到ListView时重新启动

  21. 21

    重新启动应用程序后,ASP.NET 5 Identity 3用户将注销

  22. 22

    退出程序后可以重新启动程序吗?

  23. 23

    关闭程序后如何自动重新启动程序

  24. 24

    重新将程序附加到标准输入

  25. 25

    将事件处理程序附加到存储在列表中的事件

  26. 26

    CLLocationManager startMonitoringForRegion:设备重新启动后不重新启动应用程序

  27. 27

    在Python中超出范围后,如何重新启动列表?

  28. 28

    仅在重新启动应用程序后,Sharedpreferences中的值才可用

  29. 29

    更新gem后,无法在openshift中重新启动应用程序

热门标签

归档