Python : stdout에 파일 인쇄


89

나는 검색했고 다른 방법으로 만 질문을 찾을 수 있습니다 : stdin을 파일에 작성 :)

파일의 내용을 stdout에 덤프하는 빠르고 쉬운 방법이 있습니까?

답변:


122

확실한. 파일 이름이라는 문자열이 있다고 가정하면 fname다음이 트릭을 수행합니다.

with open(fname, 'r') as fin:
    print(fin.read())

8
이것은 출력 끝에 추가 개행을 추가합니다.
DA

13
파이썬 3 호환성 후행 줄 바꿈을 피하려면 마지막 줄은 아마도 다음과 같이 읽어야합니다 : print(fin.read(), end=""). Python 2에서 해당 솔루션을 활용하려면 접두사 from __future__ import print_function가 필요합니다. 물론 Python 2 애플리케이션은 어쨌든 항상 Python 3 print()함수를 사용해야합니다. 따라서 큰 부담은 아닙니다.
Cecil Curry

42

대용량 파일이고 Ben의 솔루션에서 발생할 수있는 것처럼 많은 양의 메모리를 소비하고 싶지 않다면

>>> import shutil
>>> import sys
>>> with open("test.txt", "r") as f:
...    shutil.copyfileobj(f, sys.stdout)

또한 작동합니다.


18
f = open('file.txt', 'r')
print f.read()
f.close()

에서 http://docs.python.org/tutorial/inputoutput.html

파일의 내용을 읽으려면 f.read (size)를 호출하여 일정량의 데이터를 읽고이를 문자열로 반환합니다. size는 선택적 숫자 인수입니다. 크기가 생략되거나 음수이면 파일의 전체 내용을 읽고 반환합니다. 파일이 컴퓨터의 메모리보다 두 배 큰 경우 문제입니다. 그렇지 않으면 최대 size 바이트를 읽고 반환합니다. 파일 끝에 도달하면 f.read ()는 빈 문자열 ( "")을 반환합니다.


7

Python3의 단축 버전

print(open('file.txt').read())

2
참고 : 이것은 파일을 닫지 않습니다.
Ben Caine

3

당신은 또한 이것을 시도 할 수 있습니다

print ''.join(file('example.txt'))


0

이것을 시도 할 수 있습니다.

txt = <file_path>
txt_opn = open(txt)
print txt_opn.read()

그러면 파일 출력이 제공됩니다.


0

pathlib모듈 로이 작업을 수행해야하는 경우를 사용 pathlib.Path.open()하여 파일을 열고 다음에서 텍스트를 인쇄 할 수 있습니다 read().

from pathlib import Path

fpath = Path("somefile.txt")

with fpath.open() as f:
    print(f.read())

또는 간단히 전화하십시오 pathlib.Path.read_text().

from pathlib import Path

fpath = Path("somefile.txt")

print(fpath.read_text())

0

@bgporter의 답변을 개선하려면 Python-3을 사용하여 불필요하게 utf-8로 변환하는 대신 바이트에서 작업하고 싶을 것입니다.

>>> import shutil
>>> import sys
>>> with open("test.txt", "rb") as f:
...    shutil.copyfileobj(f, sys.stdout.buffer)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.