В Python 3.*
, чтобы перенаправить один print
вызов на открытый объект файла destination
,
print(arg, file=destination)
В Python 2.*
, где print
- оператор, синтаксис -
print>>destination, arg
Я предполагаю, что вы используете 2.*
, потому что при 3.*
присваивание результата print
не является синтаксической ошибкой (это просто бесполезно, поскольку этот результат None
, но разрешен). В 2.*
print
это оператор , а не функция, поэтому приведенный вами фрагмент кода действительно является синтаксической ошибкой.
Я не уверен, что назначение должно означать. Если вы хотите перенаправить один или несколько операторов * (или вызовов) print
, чтобы получить отформатированный результат в виде строки в памяти, вы можете установить для sys.stdout
экземпляр StringIO
(или cStringIO
); но вы специально упоминаете «в файл», так что я действительно озадачен предполагаемым значением этого назначения. Уточните пожалуйста?