Написал модуль cnc.py для быстрой генерации УП для станков с ЧПУ. Одной из ключевых там является функция GPrint(), которая выводит команду в выходной файл (если _OutputMode==_OUT_TO_FILE), файл, создаваемый по умолчанию (если _OutputMode==_OUT_TO_UNK), или добавляет строку в заданный список (если _OutputMode==_OUT_TO_LIST). Хендл файла или список содержится в глобальной внутренней переменной модуля _Output:
_OUT_TO_UNK = -1
_OUT_TO_FILE = 0
_OUT_TO_LIST = 2
_Output=_Self=None #задаётся другой процедурой или с помощью _SetSelfOutput()
_OutputMode=_OUT_TO_UNK
def GPrint(Line):
global _Output,_OutputMode
if _OutputMode==_OUT_TO_FILE:
print(Line,file=_Output)
elif _OutputMode==_OUT_TO_LIST: _Output.append(Line)
else:
_SetSelfOutput()
print(Line,file=_Output)
E:\WORK\G_CODE\GCodeGen>python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
from cnc import *
File "E:\WORK\G_CODE\GCodeGen\cnc.py
print(Line,file=_Output)
^
SyntaxError: invalid syntax
Но самое странное произошло тогда, когда я запустил тот же скрипт с перенаправлением вывода:
E:\WORK\G_CODE\GCodeGen>python test.py >report.txt
Объясните мне кто-нибудь пожалуйста, что происходит?.