为什么命名文件'合同文本'在windows中让Python写入控制台,而不是文件?

2024-10-01 17:22:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助调试Python中一些奇怪的文件行为。执行以下脚本(write_con.py):

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

在Linux中,这将创建一个名为con.txt的文件,其内容为hi。在Windows中,它将hi写入控制台,而不创建文件。我已经在python2.5.1、2.6.3、2.6.5和2.7.2中尝试过这一点。示例运行:

^{pr2}$

然而,一个名为anything而不是以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写入控制台?在


Tags: 文件pytxt脚本示例内容linuxwindows
3条回答

这不是Python错误,而是Windows命名约定。Windows不允许您将文件或文件夹另存为保留关键字列表,包括CON, PRN, AUX, CLOCK$, NUL COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9.

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

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

CON,PRN,AUX,时钟$,NUL 通信0,通信1,通信2,通信3,通信4,通信5,通信6,通信7,通信8,通信9 LPT0、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8和LPT9。

Legacy。在DOS中,写一个名为“CON”的文件会把它写到控制台;Windows延续了这一传统。在

相关问题 更多 >

    热门问题