28 votes

Un bug super étrange de os.path.abspath

Sur My Python 2.6 ( 64bit, win7, ActivePython ), quand j'appelle:``

Il retourne:
``

Je n'ai aucun problème avec d'autres chemins jusqu'à présent.

Quelqu'un a le même problème?
Quelqu'un peut-il s'il vous plaît me dire pourquoi?

44voto

Tim Pietzcker Points 146308

Je peux reproduire ce en Python 2.6, 2.7, 3.1 et 3.2.

La raison de ce comportement est le fait qu' CON est illégal nom de fichier dans Windows (essayez os.path.abspath('D:/PROJECTS/SuiShouBei/www/ssb/static/voices/en/mp3/cont.mp3') et de voir que tout fonctionne bien).

Afin de prendre soin de vos noms de fichiers ne contiennent pas de

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

Aussi ne l'utilisez pas les noms de périphérique réservé pour le nom de fichier (avec ou sans l'extension):

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, 
LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. 

Comme remarqué par slowdog, il est mentionné dans le même document MSDN comme ci-dessus que l' \\.\CON est la bonne façon d'accéder à un nom de périphérique directement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X