Почему имя файла «con.txt» в Windows заставляет 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

Что происходит на это заставляет версии Python для Windows записывать в консоль, когда префикс именованного файла con?

8
задан Rich 27 March 2012 в 18:48
поделиться