在我的代码中使用用户选择的文件路径

时间:2014-10-24 15:04:27

标签: python syntax global-variables syntax-error

我有我的代码:

def mnuRead(self, event):
    global fn 

    dialog = wx.FileDialog(None, "Choose a file", os.getcwd(), "", "*.*", wx.OPEN)

    if dialog.ShowModal() == wx.ID_OK:
        countrylist = []

        fn = dialog.GetPath()
        fh = open(fn, "r") 
        csv_fh = csv.reader(fh)
        for row in csv_fh:
            countrylist.append(row)
        fh.close()
        for rows in countrylist:
            self.myListCtrl.Append(rows)

def btnHDI(self, event):

    myfile = open(fn, "rb")
    wx.MessageBox(fn)
    countries = []

我的mnuRead方法允许用户打开自己选择的文件。我想在下面的btnHDI方法中使用此文件路径的字符串。

将我的fn变量设置为global会给我一个语法错误。如何在其他方法中使用此文件路径?

1 个答案:

答案 0 :(得分:0)

global仅用于将声明一个或多个名称视为全局名称。

您需要将fn = dialog.GetPath()的分配移至以下行:

global fn 
fn = dialog.GetPath()

此外,通常的做法是将全局声明放在函数的开头:

def mnuRead(self, event):
    global fn

这样,它们很容易被看见。