Ответ 1
Если вы хотите использовать функцию print
в Python 2, вам нужно импортировать из __future__
:
from __future__ import print_function
Но вы можете получить такой же эффект, не используя функцию:
print >>f1, 'This is a test'
Почему при попытке печати непосредственно в файл вместо 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.
Итак, каков был бы правильный синтаксис, чтобы изменить стандартную запись на печать??
Я знаю, что есть разные, возможно, лучшие способы записи в файл, но я действительно не понимаю, почему это должна быть синтаксическая ошибка...
Хорошее объяснение будет оценено!
Если вы хотите использовать функцию print
в Python 2, вам нужно импортировать из __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()
print(args, file=f1)
- это синтаксис python 3.x.
Для python 2.x используйте print >> f1, args
.
Вы можете экспортировать инструкцию печати в файл без изменения какого-либо кода. Просто откройте окна терминала и запустите свой код следующим образом:
python yourcode.py >> log.txt
Это перенаправит ваш вывод "print" в файл:
import sys
sys.stdout = open("file.txt", "w+")
print "this line will redirect to file.txt"
В Python 3.0+ print
- это функция, которую вы вызываете с помощью print(...)
. В более ранней версии print
является оператором , который вы делаете с помощью print ...
.
Чтобы напечатать файл в Python до версии 3.0, выполните следующие действия:
print >> f, 'what ever %d', i
Оператор >>
направляет печать в файл f
.