New submission from Craig Holmquist:

os.walk follows Windows junctions even if followlinks is False:

>>> import os
>>> appdata = os.environ['LOCALAPPDATA']
>>> for root, dirs, files in os.walk(appdata, followlinks=False):
...     print(root)

C:\Users\Test\AppData\Local
C:\Users\Test\AppData\Local\Apple
C:\Users\Test\AppData\Local\Apple\Apple Software Update
C:\Users\Test\AppData\Local\Apple Computer
C:\Users\Test\AppData\Local\Apple Computer\iTunes
C:\Users\Test\AppData\Local\Application Data
C:\Users\Test\AppData\Local\Application Data\Apple
C:\Users\Test\AppData\Local\Application Data\Apple\Apple Software Update
C:\Users\Test\AppData\Local\Application Data\Apple Computer
C:\Users\Test\AppData\Local\Application Data\Apple Computer\iTunes
C:\Users\Test\AppData\Local\Application Data\Application Data
C:\Users\Test\AppData\Local\Application Data\Application Data\Apple
C:\Users\Test\AppData\Local\Application Data\Application Data\Apple\Apple 
Software Update
C:\Users\Test\AppData\Local\Application Data\Application Data\Apple Computer
C:\Users\Test\AppData\Local\Application Data\Application Data\Apple 
Computer\iTunes
C:\Users\Test\AppData\Local\Application Data\Application Data\Application Data
C:\Users\Test\AppData\Local\Application Data\Application Data\Application 
Data\Apple
C:\Users\Test\AppData\Local\Application Data\Application Data\Application 
Data\Apple\Apple Software Update
C:\Users\Test\AppData\Local\Application Data\Application Data\Application 
Data\Apple Computer
C:\Users\Test\AppData\Local\Application Data\Application Data\Application 
Data\Apple Computer\iTunes
C:\Users\Test\AppData\Local\Application Data\Application Data\Application 
Data\Application Data
[...]

For directory symbolic links, os.walk seems to have the correct behavior.  
However, Windows 7 (at least) employs junctions instead of symlinks in 
situations like the default user profile layout, i.e. the "Application Data" 
junction shown above.

I also noticed that, for junctions, os.path.islink returns False but os.stat 
and os.lstat return different results.

----------
components: Library (Lib)
messages: 235531
nosy: craigh
priority: normal
severity: normal
status: open
title: os.walk always follows Windows junctions
type: behavior
versions: Python 3.4

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23407>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to