On Thu, 11 Jan 2007, Christopher Spears wrote: > Let's say I have a series of files that are named like > so: > > 0001.ext > 0230.ext > 0041.ext > 0050.ext > > How would I convert these from a padding of 4 to a > padding of 1? In other words, I want the files to be > renamed as: > > 1.ext > 230.ext > 41.ext > 50.ext
That doesn't look to me like a padding of 1; that looks to me like no padding. But if that's what you want, I'm sure there's a better way, but my initial approach would be: >>> oldnames = ["0001.ext", "0230.ext", "0041.ext", "0050.ext"] >>> for name in oldnames: ... newfname, fext = name.split('.') ... newname = "%s.%s" % (int(newfname), fext) ... print newname ... 1.ext 230.ext 41.ext 50.ext >>> Note that this assumes that the filename portion is entirely numeric. This would break on, for example, a file named 00abc.ext. Actually, what I don't like here is the conversion of string to int to string for no real purpose. > At first I used strip(), which was a mistake because > it removed all the zeroes. That should work, with an argument: >>> oldnames = ["0001.ext", "0230.ext", "0041.ext", "0050.ext"] >>> newnames = [name.strip('0') for name in oldnames] >>> newnames ['1.ext', '230.ext', '41.ext', '50.ext'] _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor