Python 2.7: Печать в файл

Почему при попытке печати напрямую в файл вместо sys.stdout возникает следующая синтаксическая ошибка:

Python 2.7.2+ (default, Oct  4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f1=open('./testfile', 'w+')
>>> print('This is a test', file=f1)
  File "<stdin>", line 1
    print('This is a test', file=f1)
                            ^
SyntaxError: invalid syntax

From help (__ builtins__) У меня есть следующая информация:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file: a file-like object (stream); defaults to the current sys.stdout.
    sep:  string inserted between values, default a space.
    end:  string appended after the last value, default a newline.

Итак, каков был бы правильный синтаксис для изменения стандартного потока записи для печати?

Я знаю, что есть разные, возможно, лучшие способы записи в файл, но я действительно не понимаю, почему это должна быть синтаксическая ошибка ...

Приятное объяснение!

91
задан Noumenon 6 July 2015 в 17:49
поделиться