File Manager in Tkinter

Nick Buchholz nbuchholz at noao.edu
Tue Aug 10 11:43:24 EDT 2010


On Tue, 10 Aug 2010 10:58:39 -0400
 John at mail.python.org wrote:
>Thank you both for the suggestions. Have you ever tried to make one?
>-- 
>http://mail.python.org/mailman/listinfo/python-list
I don't know if my first reply went out so I'll repeat
Here is a list box dialog written to allow selection of one of a specific type of file.  It is a
method in a larger gui object that controls hardware on a remote machine (called a PAN) and loads 
commands from files.
    def modeFiles(self):
        try:
            sysFile = self.chkConnected()
        except Disconnect,e:
            return (False, '')

        self.pan.ppxGetAVP( ('modeFdir', ) )
        dir = self.pan.avps['modeFdir'].get()

        fileList = fetchModFiles(self.pan, dir=dir)
        flist = []
        for file in fileList:
            idx = rfind(file, '/')
            flist.append(file[idx+1:])

        
        dlg = Pmw.ComboBoxDialog(self.parent, title = 'Mode File Select',
	                         buttons=('Load', 'Cancel'), defaultbutton='Load',
	                         combobox_labelpos=N, label_text='Which Mode file to load',
	                         scrolledlist_items=flist, listbox_width=32)
        dlg.geometry('240x300+30+250')
        dlg.tkraise()
        result = dlg.activate(geometry='240x300+30+250')

        if result == 'Load':
            print "loading %s/%s "%(dir, dlg.get())
            self.pan.ppxSetMode( (dlg.get(),) )
        else:
            print "leaving"
here is fetchModFilesz
def fetchModFiles(pan=None, dir=None):
    """ A function to read mod files on remote pan in directory dir """
    fileList = []
    if pan is not None:
        if dir is None:
            rCmd = "/bin/echo $MONSOON_HOME"
            dir = commands.getoutput("ssh -X -l monsoon %s '%s'" % (pan.panName, rCmd) )
            dir = dir+os.sep+'_'+pan.sysName

        lsCmd = "/bin/ls %s/*.mod"%(dir,)
        resp = commands.getoutput("ssh -X -l monsoon %s '%s'"% (pan.panName, lsCmd))
        fileList = resp.split("\n")
    else:
        pass
    return fileList

Someday I may have time to go back and clean these up and generalize them.  But as the only 
software guy on a 3 man-year project due to complete in 9 months quick and dirty is the rule.

Nick
nbuchholz at noao.edu
Day phone: (520) 318-8203
"Time is an illusion, Lunchtime doubly so" - Ford Prefect
Time is an illusion perpetrated by the manufacturers of space.




More information about the Python-list mailing list