【问题标题】:Button in python graphic windowpython图形窗口中的按钮
【发布时间】:2015-02-05 13:04:58
【问题描述】:
def read_inventory(fname):
    file=open(fname,'r')
    lst=file.readlines()
    return lst


while True:
    c=win.getMouse()#c=click
    if p2.x<c.x<p1.x and p2.y<c.y<p1.y:
        lst=read_inventory(file_name_E.getText())
        print(lst)

在 python 图形窗口中,我正在尝试制作一个按钮,用于打开用户在其中输入名称的文件。但是,如果该文件不存在,我会收到一个错误并且while True 循环不再运行,这意味着用户无法输入另一个文件来尝试打开。我似乎无法理解为什么会这样。

【问题讨论】:

  • @BhargavRao 我希望文件能够再次输入并尝试打开该文件。
  • 把文件打开试试除了块
  • @BhargavRao 我不知道那是什么,我会查一下,但你能举个例子吗?
  • 如果文件不存在,您打算创建一个文件,还是告诉用户它无效?
  • @chris 也没有,如果输入了无效的文件名,我希望程序继续运行。

标签: python loops button


【解决方案1】:

试试这个:

def read_inventory(fname):
    file=open(fname,'r')
    lst=file.readlines()
    return lst

while True:
        try:
            c=win.getMouse()#c=click
            if p2.x<c.x<p1.x and p2.y<c.y<p1.y:
                lst=read_inventory(file_name_E.getText())
                print(lst)
        except:
            pass

【讨论】:

  • @BargavRao 什么是 OP?
【解决方案2】:

try except 块工作得很好,这就是我得到的:

def read_inventory(fname):
    file=open(fname,'r')
    lst=file.readlines()
    return lst

while True:
    c=win.getMouse() #c=click
    if p2.x<c.x<p1.x and p2.y<c.y<p1.y:
        try:
            lst=read_inventory(file_name_E.getText())
            print(lst)
        except:
            print("File name '{}' does not exist.".format(file_name_E.getText()))

lst 只是在读取时分配给文件中任何内容的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多