我需要帮助调试Python中的一些奇怪的文件行为.采取以下脚本(write_con.py):
f=open('con.txt','w')
f.write('hi')
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
然而,一个名称以开头的东西命名的文件con工作正常(write_other_con.py):
f=open('other_con.txt','w')
f.write('hi')
Run Code Online (Sandbox Code Playgroud)
这是一个运行:
C:\Users\rpsharp> C:\Python25\python.exe .\write_other_con.py
C:\Users\rpsharp> type .\other_con.txt
hi
Run Code Online (Sandbox Code Playgroud)
当命名文件的前缀是con?时,会发生什么导致Windows版本的python写入控制台?
您必须检查Wikipedia Filename页面.它有一个表,包含很多文件系统的保留字符.
在Windows和DOS实用程序中,某些单词也可能被保留,不能用作文件名.例如,DOS设备文件:
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.
这不是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.
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |