programing

Python 2.7 : 파일로 인쇄

nasanasas 2020. 9. 2. 18:49
반응형

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.

참고 URL : https://stackoverflow.com/questions/9316023/python-2-7-print-to-file

반응형