根据变量打开特定文件

时间:2015-04-25 12:41:57

标签: python

好的,对于这个GUI,我想根据某个变量结果读取文件。我会尝试更详细地解释它。

因此该文件从下拉菜单中获取输入。用户选择的选项将决定读取哪个文件。然后将读取的文件附加到数组中,然后将其放入另一个下拉菜单中。

我想知道这是否可行。我的部分代码在下面。

早期下拉菜单:

    weapon.set('Sword')
    choices = ['Sword', 'Bow', 'Katana']
    self.weaponMenu = OptionMenu(self,weapon, *choices)
    self.weaponMenu.grid(row =2, column = 2)

阅读文件:

    self.moves = Label(self, text = "Move")
    self.moves.grid(row = 9, column = 1,)
    move = StringVar()

    weapon = open("%d.txt" %(self.weaponMenu.get()),"r") #reads weapon file
    moves = []
    for line in weapon:
        moves.append(line)
    self.movesMenu = OptionMenu(self, move, *moves)
    self.movesMenu.grid(row =10, column = 1)

这是我试图做的,但我无法让它发挥作用。我可以做if语句,但我想知道我尝试的方法是否可以工作,或者我还能做些什么来实现相同的结果。

我希望你理解我写的内容,并提前感谢你的帮助!希望我做的一切都正确,我仍然是stackoverflow的新手。

当我尝试执行该文件时,收到以下错误消息:

我收到以下错误消息:

    Traceback (most recent call last):
      File "C:\Python27\mh4uDamageWindow.py", line 88, in <module>
        app = Application(root)
      File "C:\Python27\mh4uDamageWindow.py", line 10, in __init__
        self.create_widget()
      File "C:\Python27\mh4uDamageWindow.py", line 67, in create_widget
        weapon = open("%d.txt" % (self.weaponMenu.get()),"r") #reads weapon file
    AttributeError: OptionMenu instance has no attribute 'get'
    >>>

1 个答案:

答案 0 :(得分:0)

使用OptionMenuweapon)的变量集而不是小部件本身:

weapon = open("%s.txt" % (weapon.get()),"r") #reads weapon file

如果您在阅读文件的范围内无法使用,请将其添加到self