How to get the filename in the right case ?
MRAB
google at mrabarnett.plus.com
Thu Sep 25 18:40:56 EDT 2008
On Sep 25, 8:38 pm, Stef Mientki <stef.mien... at gmail.com> wrote:
> I found a partial workaround that is good enough for me:
>
> def Get_Windows_Filename ( FileName ) :
> if os.name == 'nt' :
> File = os.path.splitext ( FileName .lower ())[0]
> return glob.glob ( File + '.p?' )
> return FileName
>
> This will translate the filename into the correct case, but not the path.
>
> I also looked at os.path.walk, but that's too slow for me,
> because getting the path correct means I have to start at the root.
>
You could try win32api.GetLongPathName(...). However, I've found that
some parts of the path are converted to the correct case but other
parts aren't:
>>> print win32api.GetLongPathName(r"c:\documents and settings\administrator\desktop\foobar.py")
c:\documents and settings\administrator\Desktop\FooBar.py
How does your solution compare to using os.listdir(...) instead of
glob?
More information about the Python-list
mailing list