Tim Chase wrote: > Having a win32 program take case-sensitive filenames is a bit > odd, given that the OS is case-agnostic...however, that doesn't > preclude bad programming on the part of your tool-maker. Alas. > > Thus, to accomodate the lousy programming of your tool's maker, I > proffer this: > > I've found that Win32 doesn't often take a rename if the origin > and destination differ only in case[*]. Thus, to change the > case, I've had to do *two* renames...one to, say, prefix with an > underscore and change the case to my desired case, and then one > to strip off the leading underscore. You might try a similar > song-and-dance to strong-arm Windows into specifying the case of > the file. Something like this (untested) code: > > filename = "Spanish Inquisition.TGA" > name, ext = splitext(filename) > intermediate = "_" + name + ext.lower() > rename(filename, intermediate) > rename(intermediate, intermediate[1:]) > > And then I'd wrap this contrived abomination in plenty of > comments so that folks coming back to it understand why you're > using three lines to do what "should" be just > > rename(filename, name + ext.lower()) > > as would be the "right" way to rename the file with a lowercase > version of its extension. > > Yes, it's an odd filename choice there which you might not have > expected...nobody expects the Spanish Inquisition... > > -tkc > > [*] Have had problems with this both in Explorer and at the > command prompt.
Yes, that's tool maker's fault. I think he used string compare in his code with case-sensitive (coded in c#, btw). I started study python about a month, so I hope my problem not bother you :) Anyway, I realize python is an amazing language and a power tool, thank you. wutiefeng 2006-11-03 ___________________________________________________________ 雅虎免费邮箱-3.5G容量,20M附件 http://cn.mail.yahoo.com/
-- http://mail.python.org/mailman/listinfo/python-list