Python: Einen WindowsError anstelle eines IOError erhalten

Ich versuche Ausnahmen mit Python 2.7.6 unter Windows 8 zu verstehen.

Hier ist der Code, den ich teste und der darauf abzielt, ein neues Verzeichnis zu erstellenMy_New_Dir. Wenn das Verzeichnis bereits vorhanden ist, möchte ich das gesamte Verzeichnis und seinen Inhalt löschen und dann ein neues Verzeichnis erstellen.

import os

dir = 'My_New_Dir'
try:
    os.mkdir(dir)
except IOError as e:
    print 'exception thrown'
    shutil.rmtree(dir)
    os.mkdir(dir)

Die Sache ist, die Ausnahme wird nie geworfen. Der Code funktioniert einwandfrei, wenn das Verzeichnis noch nicht existiert, aber wenn das Verzeichnis existiert, erhalte ich den Fehler:

WindowsError: [Fehler 183] Kann keine Datei erstellen, wenn diese Datei bereits existiert: 'My_New_Dir'

Aber gemäß der Python-Dokumentation für os.mkdir ()

Wenn das Verzeichnis bereits vorhanden ist, wird OSError ausgelöst.

Warum wird der Windows-Fehler ausgelöst und nicht die Python-Ausnahme?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage