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
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.
그렇다면 표준 스트림 인쇄 쓰기를 변경하는 올바른 구문은 무엇입니까?
파일에 쓰는 데 더 나은 방법이 다를 수 있다는 것을 알고 있지만 이것이 구문 오류 여야하는 이유를 모르겠습니다.
좋은 설명을 주시면 감사하겠습니다!
답변
print
Python 2 에서 함수 를 사용하려면 다음에서 가져와야합니다 __future__
.
from __future__ import print_function
그러나 함수를 사용하지 않고도 동일한 효과를 얻을 수 있습니다.
print >>f1, 'This is a test'
답변
print는 파이썬 2.X의 키워드입니다. 다음을 사용해야합니다.
f1=open('./testfile', 'w+')
f1.write('This is a test')
f1.close()
답변
print(args, file=f1)
파이썬 3.x 구문입니다. 파이썬 2.x의 경우 print >> f1, args
.
답변
코드를 변경하지 않고 print 문을 파일로 내보낼 수 있습니다. 터미널 창을 열고 다음과 같이 코드를 실행하기 만하면됩니다.
python yourcode.py >> log.txt
답변
그러면 ‘인쇄’출력이 파일로 리디렉션됩니다.
import sys
sys.stdout = open("file.txt", "w+")
print "this line will redirect to file.txt"
답변
파이썬 3.0 이상에서, print
A는 기능을 당신이 전화 것입니다, print(...)
. 이전 버전에서, print
A는 문 당신이 만드는 것,print ...
.
3.0 이전의 Python에서 파일로 인쇄하려면 다음을 수행하십시오.
print >> f, 'what ever %d', i
>>
운영자는 파일에 인쇄를 지시합니다 f
.