В 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.
Итак,каков был бы правильный синтаксис для изменения стандартной потоковой печати?
Я знаю, что есть разные, возможно, лучшие способы записи в файл, но я действительно не понимаю, почему это должно быть синтаксической ошибкой...
хорошее объяснение было бы спасибо!
6 ответов:
если вы хотите использовать
__future__
:from __future__ import print_function
но вы можете иметь тот же эффект без использования функции тоже:
print >>f1, 'This is a test'
print-это ключевое слово в python 2.X. Вы должны использовать следующее:
f1=open('./testfile', 'w+') f1.write('This is a test') f1.close()
вы можете экспортировать инструкцию печати в файл без изменения какого-либо кода. Просто откройте окно терминала и запустите свой код следующим образом:
python yourcode.py >> log.txt