我可以在 Python 2.6、2.7、3.1 和 3.2 中重现这一点。
这种行为的原因是 CON 在 Windows 中是 illegal filename(尝试 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 所注意到的,the same MSDN document as above 中提到\\.\CON 是直接访问此类设备名称的正确方法。