【发布时间】:2021-01-27 21:17:42
【问题描述】:
我正在尝试让我的确认按钮激活从现有公园中删除公园名称并将其写入已访问公园的新 csv。所以第一次程序需要创建新的 csv 如果它不存在。基本上它会在新的 csv 中记录访问过的公园。这是我尝试过的,但它没有执行(参见def confirm_park())。我有点失落。有什么指示或提示可以帮助我前进吗?
from tkinter import *
from tkinter import messagebox
import pandas
import random
import csv
BACKGROUND_COLOR = "#006600"
BUTTON_COLOR = "#6699ff"
# try:
# data = pandas.read_csv("data/stl_parks_visited.csv")
# except FileNotFoundError:
# original_data = pandas.read_csv("data/stl_parks_list.csv")
# to_learn = original_data.to_dict(orient="records")
# else:
# to_learn = data.to_dict(orient="records")
def new_park():
with open("stl_parks_list.csv") as f:
park = f.readlines()
chosen_park = random.choice(park)
canvas.itemconfig(park_text, text = chosen_park)
def confirm_park():
park.remove(chosen_park)
print(len(park))
data = pandas.DataFrame(park)
data.to_csv("data/stl_parks_visited.csv", index=False)
# --- UI Setup ---
window = Tk()
window.title("St. Louis Parks at Random")
window.config(padx=20, pady=20, bg=BACKGROUND_COLOR)
canvas = Canvas(width=300, height=100, bg="white")
park_text = canvas.create_text(
150,
65,
text='Ready, set,\n"GET PARK"',
width=280,
fill=BACKGROUND_COLOR,
font=("Ariel", 20, "italic")
)
canvas.grid(row=1, column=0, columnspan=2, pady=20, sticky="NESW")
# arch_img = PhotoImage(file="gateway-arch-park.png")
# canvas.create_image(226, 159, image=arch_img)
# canvas.config(bg=BACKGROUND_COLOR, highlightthickness=0)
# canvas.grid(row=0, column=0, columnspan=2, sticky='')
# --- Label ---
website_label = Label(text="St. Louis Parks at Random", fg="white", bg=BACKGROUND_COLOR)
website_label.grid(column=1, row=0, columnspan=2)
# --- Buttons ---
# "Get Park" button generates a random park name from the stl_parks_list.csv
get_park_button = Button(text="GET PARK", width=20, bg=BUTTON_COLOR, font=("bold"), command=new_park)
get_park_button.grid(column=0, row=2, columnspan=2, sticky='', pady=20)
# "Confirm" button cornfirms that you want to visit this park. The park name will then be moved to a new csv of stl_visited_parks.csv and removed from the stl_parks_list.csv.
confirm_button = Button(text="CONFIRM", width=10, bg=BUTTON_COLOR, font=("bold"), command=confirm_park)
confirm_button.grid(column=0, row=3)
# Push the "Skip" button to skip the park and get a different suggestion. Park names remain on the parks list until they are confirmed.
skip_button = Button(text="SKIP", width=10, bg=BUTTON_COLOR, font=("bold"), command=new_park)
skip_button.grid(column=1, row=3)
new_park()
window.mainloop()
【问题讨论】:
-
在这里提问时,最好提供minimal reproducible example,但不幸的是,您的问题中目前有很多不相关的东西——远远超过重现问题所需的最低限度。
标签: python python-3.x dataframe csv tkinter