mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Remove misleading comment and code.
Windows does set the errno attribute to ENOENT, but the error message
displays the Windows error number (3 -> ERROR_PATH_NOT_FOUND), not the
errno number (2 -> ENOENT).
The Unix errno corresponding to 3 is ESRCH, explaining the confusion,
which can be seen in the following snippet:
>>> shutil.rmtree("foo")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "Z:\default\lib\shutil.py", line 272, in rmtree
onerror(os.listdir, path, sys.exc_info())
File "Z:\default\lib\shutil.py", line 270, in rmtree
names = os.listdir(path)
WindowsError: [Error 3] The system cannot find the path specified:
'foo\\*.*'
>>> e = sys.last_value
>>> e.errno
2
>>> e.winerror
3
>>> errno.errorcode[2]
'ENOENT'
For reference, see PC/errmap.h and
http://msdn.microsoft.com/en-us/library/ms681382%28v=vs.85%29.aspx
This commit is contained in:
parent
9e1599ad48
commit
7a18d21230
1 changed files with 1 additions and 2 deletions
|
|
@ -212,8 +212,7 @@ def rmtree(path):
|
|||
try:
|
||||
shutil.rmtree(path)
|
||||
except OSError as error:
|
||||
# Unix returns ENOENT, Windows returns ESRCH.
|
||||
if error.errno not in (errno.ENOENT, errno.ESRCH):
|
||||
if error.errno != errno.ENOENT:
|
||||
raise
|
||||
|
||||
def make_legacy_pyc(source):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue