On Dec 16, 2:00 pm, MRAB <goo...@mrabarnett.plus.com> wrote: > ianaré wrote: > > Hello all, > > > I trying to recursively rename folders and files, and am looking for > > some ideas on the best way of doing this. The problem is that the > > given list of items can be in order, and one to all items may be > > renamed. Here is some preliminary code I have, but which does not work > > very well. > > > self.toRename has the following structure : > > [ > > [original_name, new_name, os.path.isdir] > > .. > > ] > > > # define these here for faster processing > > def split(item): > > return os.path.split(item) > > def addSep(path): > > return os.sep + path + os.sep > > def recursiveFolderSort(x,y): > > return cmp(y[0], x[0]) > > > sortedRename = sorted(self.toRename) > > > # make a list of all folders that will be processed > > foldersToAdjust = [] > > for item in sortedRename: > > if item[2] is False: > > if not item[2]:> oF = split(item[0])[1] # original folder name > > nF = split(item[1])[1] # new folder name > > if oF is not nF: > > if oF != nF:> foldersToAdjust.append((oF, nF)) > > > # replace all occurences of folders in path > > for i in range(len(self.toRename)): > > for f in foldersToAdjust: > > oF = addSep(f[0]) # original folder name > > nF = addSep(f[1]) # new folder name > > self.toRename[i][0] = self.toRename[i][0].replace(oF,nF) > > self.toRename[i][1] = self.toRename[i][1].replace(oF,nF) > > > if progressDialog.update(i) is False: > > if not progressDialog.update(i):> error = 'cancelled' > > break > > > # make sure renaming will be in correct order ! > > self.toRename.sort(recursiveFolderSort) > > > First problem is adjusting the paths can take a very long time. > > Second problem is sorting is not always right and files get lost !! > > Any input welcome. > > You should use "is" and "is not" _only_ when checking for _identity, ie > are these 2 both references to the _same_ object. Most of the time that > would be "x is None" or "x is not None".
Thanks, this has been corrected. -- http://mail.python.org/mailman/listinfo/python-list