os.stat() distorts filenames that end with period (nt.stat())

Dwight Hutto dwightdhutto at gmail.com
Thu Sep 6 21:22:36 EDT 2012


On Thu, Sep 6, 2012 at 8:55 PM, ruck <john.ruckstuhl at gmail.com> wrote:

> (This with Python 2.7.2 on Windows 7)
>
> os.stat() won't recognize a filename ending in period.
> It will ignore trailing periods.
> If you ask it about file 'goo...' it will report on file 'goo'
> And if 'goo' doesn't exist, os.stat will complain.
>
> create file goo, then
>
>     >>> os.stat('goo')
>     nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0,
> st_uid=0, st_gid=0, st_size=0L, st_atime=1346978160L, st_mtime=1346978160L,
> st_ctime=1346978160L)
>     >>> os.stat('goo...')
>     nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0,
> st_uid=0, st_gid=0, st_size=0L, st_atime=1346978160L, st_mtime=1346978160L,
> st_ctime=1346978160L)
>
> rename goo to "goo...", then,
>
>     >>> os.stat('goo...')
>
>     Traceback (most recent call last):
>       File "<pyshell#16>", line 1, in <module>
>         os.stat('goo...')
>     WindowsError: [Error 2] The system cannot find the file specified:
> 'goo...'
> You can try: the other, then if not there except:mkdir<http://mail.python.org/mailman/listinfo/python-list>goo
>

and obviously, don't use ..., use ___, or something else.

It also sems that the file must exist, so did you have a file named
'goo...'? If not, it wouldn't create one, so you would have to, either by
manual, or coded by a try/except. Below is how it could go:


import os
try:
     os.stat('/home/david/whatever')
except:
os.mkdir('/home/david/whatever')





-- 
Best Regards,
David Hutto
*CEO:* *http://www.hitwebdevelopment.com*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20120906/569de157/attachment.html>


More information about the Python-list mailing list