Чому спроба друкувати безпосередньо у файл замість того, щоб 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.
Тож яким буде правильний синтаксис, на який можна змінити стандартний потік для друку?
Я знаю, що існують різні, можливо, кращі способи запису у файл, але я справді не розумію, чому це має бути синтаксичною помилкою ...
Будемо вдячні за гарне пояснення!
from __future__ import print_function
? У Python <3 друк - це твердження:
help(__builtins__)
показуючи, що це взагалі помилка.
__builtins__.__dict__['print'](value, file=f1)
працює, хоча).
print()
є вбудованою функцією python 3.x, тоді якprint
є оператором python <3.x. Пост показує2.7.2+
.