自从我收到答案以来,问题已更新。 现在提出的问题是当我有两个“玩家”彼此相邻时,如何从csv文件获取值。Python搜索CSV文件并在Tkinter中返回结果
从Tkinter的进口* 导入CSV
master = Tk()
b1 = StringVar()
v1 = StringVar()
v2 = StringVar()
v3 = StringVar()
b2 = StringVar()
v4 = StringVar()
v5 = StringVar()
v6 = StringVar()
a = Label(master, text="Player 1", font="Verdana 10 bold").grid(row=8, column=1, columnspan=2, pady=15)
b = Label(master, text="Player Name").grid(row=9, column=1, sticky='w')
c = Label(master, text="1st Service Percentage:").grid(row=10, column=1, sticky='w')
cc = Label(master, text="value", textvariable=v1)
d = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=1, sticky='w')
dd = Label(master, text="value", textvariable=v2)
e = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=1, sticky='w')
ee = Label(master, text="value", textvariable=v3)
a22 = Label(master, text="Player 2", font="Verdana 10 bold").grid(row=8, column=3, columnspan=2, pady=15)
b22 = Label(master, text="Player Name").grid(row=9, column=3, sticky='w')
c22 = Label(master, text="1st Service Percentage:").grid(row=10, column=3, sticky='w')
cc22 = Label(master, text="value", textvariable=v4)
d22 = Label(master, text="Points Won on 1st Serve: ").grid(row=11, column=3, sticky='w')
dd22 = Label(master, text="value", textvariable=v5)
e22 = Label(master, text="Points Won on 2nd serve:").grid(row=12, column=3, sticky='w')
ee22 = Label(master, text="value", textvariable=v6)
def name():
with open("Service.csv") as fh:
for row in fh:
if (b1.get()) in row:
player_name = row[0:row.find(',')]
row = row.replace(player_name+',', '')
firstService = row[0:row.find(",")]
row = row.replace(firstService+',', '')
points_firstserve = row[0:row.find(",")]
row = row.replace(points_firstserve+',', '')
points_secondserve = row[0:row.find(",")]
row = row.replace(points_secondserve+',', '')
v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
v2.set(points_firstserve)
dd.grid(row=11, column=2, sticky='w')
v3.set(points_secondserve)
ee.grid(row=12, column=2, sticky='w')
if (b2.get()) in row:
player_name = row[0:row.find(',')]
row = row.replace(player_name + ',', '')
firstService = row[0:row.find(",")]
row = row.replace(firstService + ',', '')
points_firstserve = row[0:row.find(",")]
row = row.replace(points_firstserve + ',', '')
points_secondserve = row[0:row.find(",")]
row = row.replace(points_secondserve + ',', '')
v1.set(firstService)
cc.grid(row=10, column=2, sticky='w')
v2.set(points_firstserve)
dd.grid(row=11, column=2, sticky='w')
v3.set(points_secondserve)
ee.grid(row=12, column=2, sticky='w')
myb1 = Entry(master, textvariable=b1)
myb1.insert(10, "Andy Murray")
myb1.grid(row=9, column=2)
myb22 = Entry(master, textvariable=b2)
myb22.insert(10, "Novak Djokovic")
myb22.grid(row=9, column=4)
button1 = Button(master, text='Run', command=name, bg="light green", font="Verdana 9 bold")
button2 = Button(master, text='Quit', command=quit, bg="red", font="Verdana 9 bold")
button1.grid(row=15, column=2, ipadx=50, pady=10)
button2.grid(row=15, column=3, ipadx=50, pady=10, padx=5)
master.geometry("850x500+300+100")
master.bind('<Return>', name)
master.bind('<Escape>', quit)
mainloop()
你需要分割线,并从采取的第一个元素,也许像:'name.split(“”)[0]' –
@DavidZemens,感谢大卫,但我如何得到这个输入进入GUI中的正确行? – Wouter
我不知道你的gui,也不知道你可能想要它。我相信你可以从这里弄清楚,不是吗? –