我在wx.DirDialog框中通过GetPath创建了一个变量(snowDIR),我想在函数外部使用snowDIR。我的代码有一个示例:
for file in os.listdir(snowDIR):
if fnmatch.fnmatch(file, '*.hdf'):
if file[9:16] == a:
inputhdf = (snowDIR + '\\' + file)
print 'input hdf is: ', inputhdf
tmod = 1
def OnDownload(self, e):
modisPathFile = 'MODIS_data_directory_path.txt'
dlg = wx.DirDialog(self, "Choose a directory:",
style=wx.DD_DEFAULT_STYLE
#| wx.DD_DIR_MUST_EXIST
#| wx.DD_CHANGE_DIR
)
if dlg.ShowModal() == wx.ID_OK:
print "You chose %s" % dlg.GetPath()
snowDIR = dlg.GetPath()
print 'snowDIR : ', snowDIR
dlg.Destroy()
more code ....
return snowDIR
任何帮助都会受到极大的赞赏,因为我在没有锁定的情况下搜索网络,而且我已经没时间了。
答案 0 :(得分:1)
只需将其分配给self.snowDir
,您就可以从对象和任何有权访问它的内容中访问它! e.g:
def OnDownload(self, e):
modisPathFile = 'MODIS_data_directory_path.txt'
dlg = wx.DirDialog(self, "Choose a directory:",
style=wx.DD_DEFAULT_STYLE
#| wx.DD_DIR_MUST_EXIST
#| wx.DD_CHANGE_DIR
)
if dlg.ShowModal() == wx.ID_OK:
print "You chose %s" % dlg.GetPath()
self.snowDIR = dlg.GetPath()
print 'snowDIR : ', self.snowDIR
dlg.Destroy()
在同一范围内 - 即。作为同一对象的一部分:
def OnDoitClick(self, event):
""" Do the action that uses snowDir """
self.MOD01_dir = os.path.join(self.snowDIR,'MOD01')
....
范围之外: *假设上述代码是* MyFrameClass
的类定义的一部分,并且您的应用使用了 {{1} } 与上面相同的级别你可以使用:
TheFrame = MyFrameClass(...)