[python] 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

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.

그렇다면 표준 스트림 인쇄 쓰기를 변경하는 올바른 구문은 무엇입니까?

파일에 쓰는 데 더 나은 방법이 다를 수 있다는 것을 알고 있지만 이것이 구문 오류 여야하는 이유를 모르겠습니다.

좋은 설명을 주시면 감사하겠습니다!



답변

printPython 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 이상에서, printA는 기능을 당신이 전화 것입니다, print(...). 이전 버전에서, printA는 당신이 만드는 것,print ... .

3.0 이전의 Python에서 파일로 인쇄하려면 다음을 수행하십시오.

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

>>운영자는 파일에 인쇄를 지시합니다 f.


답변