os.path.abspath超级奇怪的错误

在我的Python 2.6(64位,win7,ActivePython),当我打电话: os.path.abspath('D:/PROJECTS/SuiShouBei/www/ssb/static/voices/en/mp3/con.mp3')

它返回:
'\\\\.\\con'

到目前为止,我对其他path没有任何问题。

任何人都有同样的问题?
有人可以告诉我为什么吗?

Solutions Collecting From Web of "os.path.abspath超级奇怪的错误"

我可以在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是直接访问这种设备名称的正确方法。