Подтвердить что ты не робот

Супер странная ошибка os.path.abspath

В My Python 2.6 (64 бит, win7, ActivePython), когда я звоню: os.path.abspath('D:/PROJECTS/SuiShouBei/www/ssb/static/voices/en/mp3/con.mp3')

Он возвращает:
'\\\\.\\con'

У меня нет проблем с другими путями.

У кого-то есть такая же проблема?
Может кто-нибудь, пожалуйста, скажите мне, почему?

4b9b3361

Ответ 1

Я могу воспроизвести это в Python 2.6, 2.7, 3.1 и 3.2.

Причиной такого поведения является тот факт, что CON является незаконным именем файла в Windows (попробуйте os.path.abspath('D:/PROJECTS/SuiShouBei/www/ssb/static/voices/en/mp3/cont.mp3') и убедитесь, что все работает нормально).

Поэтому следите за тем, чтобы ваши имена файлов не содержали

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

Также не используйте следующие зарезервированные имена устройств для имени файла (с расширением или без него):

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

Как заметил slowdog, он упоминается в том же документе MSDN, что и выше, что \\.\CON - это правильный способ прямого доступа к такому имени устройства.