我有我的代码:
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会给我一个语法错误。如何在其他方法中使用此文件路径?
答案 0 :(得分:0)
global
仅用于将声明一个或多个名称视为全局名称。
您需要将fn = dialog.GetPath()
的分配移至以下行:
global fn
fn = dialog.GetPath()
此外,通常的做法是将全局声明放在函数的开头:
def mnuRead(self, event):
global fn
这样,它们很容易被看见。