Python kivy filechooser读取错误的路径

时间:2013-11-04 20:40:09

标签: kivy

我正在尝试使用Kivy作为我的python应用程序的GUI,它需要从文件系统中读取文件。 但是,在某些情况下,当我尝试为文本字段的文本设置读取路径时,kivy filechooser读取错误的路径或没有导致IndexError的任何内容。 我使用默认示例来读取从http://kivy.org/docs/api-kivy.uix.filechooser.html学到的文件 我的应用程序的相关部分在此函数中,其中添加了异常处理作为处理此问题的不好方法:)

 def load(self, path, filename):
    '''
    this will load the file and dismiss the dialog
    '''
    print "Loading file..."

    print "filename:",filename
    print "path:",path
    try:
        self.selected_file = filename[0]
        self.file_text_input.text = self.selected_file
        self.dismiss_popup()
    except IndexError as ie:
        print "Something made a boo-boo...try again"+str(ie)
        self.dismiss_popup()
        self.show_popup("ERROR","Somehow I couldn't load the file:\nCheck the permissions or move it to other place")

self.show_popup()只是一个辅助函数,它显示了一个带有set function params的弹出窗口。

基本错误是filename [0]将抛出一个IndexError,因为它没有读取正确的路径。 我正在使用Linux和python2.7,有些时候我在我的主文件夹中选择一个文件,文件名变量不存储任何内容,而路径变量则存储大量的随机文件夹,例如/ media,/ opt等。

有没有人遇到过这个问题?

1 个答案:

答案 0 :(得分:1)

我发现为什么处理得不正确。 所有的失败都是由Kivy的

引起的
  

FileChooserListView

,可以通过列表点击文件夹和文件,但它也可以使小写'>'在每个列表元素的开头签名,这些是目录。 我意识到当我使用这些'>'时标志,然后我得到错误的路径,但如果我总是点击目录的列表元素,那么一切正常。 但是,那个小'>'无法禁用(暂时),因此最好和最快的替代解决方案是使用

  

FileChooserIconView

,而不是! 现在一切都很好:))