Ouvrir un répertoire sur Windows: Permission denied'

Je vais essayer d'obtenir un descripteur de fichier pour un répertoire, mais l'appel de os.open sur sur les annuaires toujours une erreur "autorisation refusée".
Je ne crois pas que c'est un problème d'autorisation, car il arrive sur tous répertoires, alors il n'y a pas de problème sur les fichiers (Voir la RÉPLICATION de session ci-dessous). En tant qu'administrateur ne fait aucune différence.

Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.mkdir('mydir')
>>> os.access('mydir', os.F_OK)
True
>>> os.access('mydir', os.R_OK)
True
>>> os.access('.', os.R_OK)
True
>>> os.access('.', os.F_OK)
True
>>> os.open('myfile', os.O_RDWR)
3
>>> os.open('mydir', os.O_RDONLY)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied: 'mydir'
>>> os.open('mydir', os.O_RDWR)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 13] Permission denied: 'mydir'
>>> open('mydir')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 13] Permission denied: 'mydir'

Sur linux il fonctionne comme prévu:

>>> os.open('mydir', os.O_RDONLY)
3

La documentation n'indique pas que vous ne pouvez pas, ni aucune plate-forme de différence. Est-ce un comportement normal? Il n'est pas possible d'obtenir des descripteurs de fichiers pour les répertoires sur Windows?

  • Si c'était possible, que feriez-vous avec ceux descripteur de fichier? Jetez un oeil à stackoverflow.com/questions/16574511/...
  • vous ne serez pas en mesure d'élever les droits de l'intérieur python. Donc, pour surmonter ce problème, vous devez exécuter python avec l'admin ou de droits élevés, pour ouvrir votre fichier.
  • Qu'advient-il si vous ouvrez une invite de commande avec "Exécuter en tant qu'Administrateur", puis essayer la même chose?
  • Tom, je pense que les droits de l'amende (le répertoire est même créé en python dans le repl comme vous pouvez le voir). En tant qu'administrateur ne fait aucune différence. Je l'ai mise à jour de la question à clarifier.
InformationsquelleAutor gwohpq9 | 2014-02-14