Potrzebuję pomocy przy debugowaniu niektórych dziwnych zachowań plików w Pythonie. Weźmy następujący skrypt (write_con.py
):Dlaczego nazywanie pliku "con.txt" w Windows powoduje, że Python zapisuje do konsoli, a nie do pliku?
f=open('con.txt','w')
f.write('hi')
W Linuksie, to tworzy plik o nazwie con.txt
z treścią hi
. W systemie Windows zapisuje on hi
do konsoli i nie tworzy pliku. Próbowałem tego w Pythonie 2.5.1, 2.6.3, 2.6.5 i 2.7.2. Przykład run:
C:\Users\rpsharp> C:\Python27\python.exe .\write_con.py
hiC:\Users\rpsharp> C:\Python25\python.exe .\write_con.py
hiC:\Users\rpsharp>
jednak plik o nazwie coś innego niż coś, co zaczyna się od con
działa dobrze (write_other_con.py
):
f=open('other_con.txt','w')
f.write('hi')
Oto run:
C:\Users\rpsharp> C:\Python25\python.exe .\write_other_con.py
C:\Users\rpsharp> type .\other_con.txt
hi
Co się dzieje, że powoduje, że windowsowe wersje Pythona zapiszą się do konsoli, gdy prefiks podanego pliku to con
?