im trying to use wxpython to get a source file/files, then a destination folder to write them to. the file and folder picker works. the problem is, actually copying (actually shutil.copy2() ). i get an except error, as if the destination file name is not correct. looking at the print lines the destination looks right. i used os.path.join to join the folder path and the filebasename. i can hear it now, that this belongs on the wxpython page, and i will be posting there as well. but, im fairly certain its something in this "for files in sourcepath:"
import wx,os,string,shutil,getpass from datetime import * def backupfiles(): dialog = wx.FileDialog(None, "Choose a source file :", style=1 | wx.MULTIPLE ) if dialog.ShowModal() == wx.ID_OK: sourcepath = dialog.GetPaths() else: dialog.Destroy() dialog = wx.DirDialog(None, "Choose a destination directory :", style=1 ) if dialog.ShowModal() == wx.ID_OK: destpath = dialog.GetPath() else: dialog.Destroy() print "sourcepath is :",sourcepath print "destpath is :",destpath for files in sourcepath: print "destpath is :",os.path.join(destpath,os.path.basename(files)) try: shutil.copy2(sourcepath, os.path.join(destpath,os.path.basename(files))) except: print "error file" class MyForm(wx.Frame): """make a frame, inherits wx.Frame""" def __init__(self): # create a frame, no parent, default to wxID_ANY wx.Frame.__init__(self, None, wx.ID_ANY, title="FacBac", pos=(300, 150), size=(500, 200)) self.SetBackgroundColour("purple") panel = wx.Panel(self, wx.ID_ANY) self.title1 = wx.StaticText(panel, wx.ID_ANY, "Backup") self.title2 = wx.StaticText(panel, wx.ID_ANY, "Restore") self.button1 = wx.Button(panel, id=-1, label='Backup ALL') self.button1.Bind(wx.EVT_BUTTON, self.button1Click) self.button1.SetToolTip(wx.ToolTip("this will backup your whole folder")) gridSizer = wx.GridSizer(rows=4, cols=2, hgap=5, vgap=5) gridSizer.Add(self.title1, 0, wx.ALL|wx.ALIGN_CENTER, 5) gridSizer.Add(self.title2, 0, wx.ALL|wx.ALIGN_CENTER, 5) gridSizer.Add(self.button1, 0, wx.ALL|wx.EXPAND, 5) topSizer = wx.BoxSizer(wx.VERTICAL) topSizer.Add(gridSizer, 0, wx.ALL|wx.EXPAND, 5) self.SetSizeHints(500,200,500,200) panel.SetSizer(topSizer) topSizer.Fit(self) def button1Click(self, event): self.button1.SetLabel("Doing Backup") backupfiles() self.button1.SetLabel("Backup All") if __name__ == "__main__": app = wx.PySimpleApp() frame = MyForm().Show() #import wx.lib.inspection #wx.lib.inspection.InspectionTool().Show() app.MainLoop() -- http://mail.python.org/mailman/listinfo/python-list