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

Из справки (__ 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.

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

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

Хорошее объяснение будет оценено!

Ответ 1

Если вы хотите использовать функцию print в Python 2, вам нужно импортировать из __future__:

from __future__ import print_function

Но вы можете получить такой же эффект, не используя функцию:

print >>f1, 'This is a test'

Ответ 2

print - это ключевое слово в python 2.X. Вы должны использовать следующее:

f1=open('./testfile', 'w+')
f1.write('This is a test')
f1.close()

Ответ 3

print(args, file=f1) - это синтаксис python 3.x. Для python 2.x используйте print >> f1, args.

Ответ 4

Вы можете экспортировать инструкцию печати в файл без изменения какого-либо кода. Просто откройте окна терминала и запустите свой код следующим образом:

python yourcode.py >> log.txt

Ответ 5

Это перенаправит ваш вывод "print" в файл:

import sys
sys.stdout = open("file.txt", "w+")
print "this line will redirect to file.txt"

Ответ 6

В Python 3.0+ print - это функция, которую вы вызываете с помощью print(...). В более ранней версии print является оператором , который вы делаете с помощью print ....

Чтобы напечатать файл в Python до версии 3.0, выполните следующие действия:

print >> f, 'what ever %d', i

Оператор >> направляет печать в файл f.