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

Terry Reedy tjreedy at udel.edu
Thu Sep 6 22:05:13 EDT 2012


On 9/6/2012 8:55 PM, ruck 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...'
>
> Puzzling, to me at least.
> Any comments?

Windows have restrictions on filenames. The restrictions are not 
consistent in that some parts of Windows will let you make names that 
other parts do not recognize or regard as illegal. I ran into this some 
years ago and there may be a discussion on the tracker, but I have 
forgetten the details except that one of the 'parts' was Windows 
Explorer. This *might* be what you are running into.

-- 
Terry Jan Reedy




More information about the Python-list mailing list