下拉菜单在Python中调用文件中的信息

时间:2014-01-02 01:55:41

标签: python tkinter

所以我需要一个下拉菜单,用户选择他/她的客户端,然后返回有关该客户的信息。

假设我有一个文件:

["client1", "client2", "client3"]

我有这段代码:

from tkinter import *

master = Tk()

with open('ubclientlistvars.txt', 'r') as clients:
    clients = (clients.readlines())


variable = StringVar(master)
variable.set("Choose Client")

w = OptionMenu(master, variable, clients)
w.pack()

mainloop()

如何将文件中的客户端绘制到下拉菜单中? 当我运行此代码时,我得到以下两个选项: Choose Client{["client1", "client2", "client3"]}

1 个答案:

答案 0 :(得分:3)

您需要实际解析该文件。如果文件内容是您发布的内容,那么readlines()只返回一行文本。它不会将文件内容神奇地转换为Python对象。假设文件是​​:

client1
client2
client3

然后,您可以使用类似clients = [i.strip() for i in f.readlines()]的内容来获取正确的客户列表,并将其传递给OptionMenu

w = OptionMenu(master, variable, *clients)

如果您无法更改文件格式,则需要在显示之前清理输入...

import re
data = f.read()  # ["client1", "client2", "client3"]
data = re.sub('["\[\]]', '', data)  # remove the ", [, and ] characters
clients = data.split(',')  # split the list of clients on the comma