为什么在Windows中命名文件’con.txt’会使Python写入控制台而不是文件?

前端之家收集整理的这篇文章主要介绍了为什么在Windows中命名文件’con.txt’会使Python写入控制台而不是文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要帮助调试 Python中的一些奇怪的文件行为.使用以下脚本(write_con.py):
f=open('con.txt','w')
f.write('hi')

在Linux中,这将创建一个名为con.txt的文件,其内容为hi.在Windows中,这会向控制台写入hi并且不会创建文件.我用Python 2.5.1,2.6.3,2.6.5和2.7.2尝试过这个.示例运行:

C:\Users\rpsharp> C:\Python27\python.exe .\write_con.py
hiC:\Users\rpsharp> C:\Python25\python.exe .\write_con.py
hiC:\Users\rpsharp>

然而,除了以con开头的东西之外的任何文件都可以正常工作(write_other_con.py):

f=open('other_con.txt','w')
f.write('hi')

这是一个运行:

C:\Users\rpsharp> C:\Python25\python.exe .\write_other_con.py
C:\Users\rpsharp> type .\other_con.txt
hi

当命名文件的前缀是con时,导致Windows版本的python写入控制台的原因是什么?

你必须检查 Wikipedia Filename page.它有一个包含很多文件系统的保留字符的表.

在Windows和DOS实用程序中,某些单词也可能被保留,不能用作文件名.例如,DOS设备文件

CON,PRN,AUX,CLOCK $,NULCOM0,COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8,COM9LPT0,LPT1,LPT2,LPT3,LPT4,LPT5,LPT6,LPT7,LPT8和LPT9.

猜你在找的Windows相关文章