파이썬 실전 프로젝트

코스 전체목록

닫기

출력결과 파일로 저장하기

방법 1. 파이썬3 명령어

출력된 결과가 많거나, 결과물의 텍스트 파일이 필요할때, 출력 결과를 텍스트 파일로 저장할수도 있습니다. 

import sys
sys.stdout = open('output.txt','w')

print('hello !!!')

이렇게 하면, 화면에 "hello !!!" 가 출력이 되는것이 아니고, output.txt 파일이 생성되고, 그 안에 출력문이 기록됩니다.

 

이어쓰기

파일에 덮어쓰지 않고, 이어쓰는 경우 'w' 옵션 대신, 'a' 옵션을 주면 됩니다.

open('output.txt','w')

 

경로 설정하기
open('folder/output.txt','w')

하위폴더를 지정할려면, 폴더 이름을 같이 써주시고, 다른 경로에 있으면, /(루트) 이하의 전체경로를 써주셔야 합니다.

 

 

방법 2. 명령 프롬프트

 sys 라이브러리를 사용하지 않고 터미널상에서 파일로 저장하는 방법입니다.

print('hello !!!')
print('test 2')

위와 같은 간단한 코드가 있다고 할때

python test.py > output.txt

 '>'  이 기호 뒤에 출력파일 이름을 정해주면, 코드의 결과가 파일로 기록됩니다.

 

이어쓰기
python test.py >> output.txt

'>>' 이 기호 두개를 사용하면, 출력파일이 이미 존재할경우, 덮어쓰지 않고, 내용의 끝에 이어서 기록해줍니다. 

 

경로 설정하기
python test.py > folder/output.txt

역시 하위폴더에 저장할때 폴더 이름을 같이 써주시면 됩니다. 폴더 이름에 공백이 있을경우 폴더명 전체를 따옴표로 감싸주거나, 공백마다 역슬래쉬\(탈출문자)를 붙여주면 됩니다.

python test.py > "some folder"/output.txt
python test.py > "some folder/output.txt"
python test.py > some\ folder/output.txt

(탈출문자 방법의 경우, 윈도우 시스템에선 다를수 있습니다. 요건 테스트 해보고 업데이트 하겠습니다.)

댓글

댓글 본문
  1. nomadlife
    선택적으로 출력을 하고 싶을땐 sys대신 아래처럼 해보세요.

    file = open('output.txt','a')

    for ....:
    if .... :
    file.write("조건에 맞았습니다. \n")

    file.close()

    이전 토픽에 있는 파일 불러오기와 비슷한 형식입니다.
    이 내용도 본문에 업데이트 해 놓도록 할게요.
    더 자세한 사용법은 여기( https://wikidocs.net/16077 ) 를 참고해보세요.
    대화보기
    • 나그네
      특정한 결과값만 저장하려고 할때 어떻게 하면 될까요?

      예제)
      import sys
      sys.stdout = open('output.txt','w')


      반복문 for
      .
      print('hello !!!')
      print('hello !!!')
      print('hello !!!').
      .
      . 중략

      if .............
      print(A, " 조건에 맞았습니다")

      A값과 "조건에 맞았습니다" 라는 Print문만 저장해보고 싶습니다.
    • nomadlife
      설명이 부족한거 같아서, 본분내용을 좀 수정했습니다. 혹시 그래도 안되시면 다시 알려주세요.
      대화보기
      • ㅇㅇㅇ
        입력이안되는데요? 파이썬명령어 뭘또추가해야하는지
      • nomadlife
        본문에 업데이트 했으니 참고하세요 ~
        대화보기
        • comments
          저장되는 파일의 위치를 따로 설정할 수 있는 방법이 있나요?
        • nomadlife
          혹시 pandas 사용중이신가요? 여기 비슷한질문 올리신분이 계시네요, https://stackoverflow.com......oks 한번 참고해보세요.
          대화보기
          • soobahkin
            결과가 아래와 같이 나옵니다.


            그러나 중간에 " ... " 이렇게 나오는데 전부 결과를 보는 방법은 없을까요?


            -----------------------------------------------------------------------------------------------------

            21 100
            22 0
            23 3
            24 0
            25 0
            26 0
            27 0
            28 52
            29 109
            ...
            2663 0
            2664 2
            2665 16
            2666 6
            2667 0
            2668 1
            2669 10
          • nomadlife
            혹시 에디터가 주피터 노트북이시면 결과셀 좌측에보시면 클릭할수 있는 부분있어요. 그부분 클릭하시면 창크기를 늘렸다 줄였다 하실수 있어요.
            대화보기
            • soobahk
              결과값이 많을 때 축약해서 결과가 나오는데 결과를 전부 볼 수 있는 방법은 없나요?
            • nomadlife
              네 그럼요. 언제든지 남기셔도 괜찮습니다.
              대화보기
              • johnmiles
                정말정말정말 감사합니다.
                진심진심진심 감사합니다.
                해결되었습니다 정말 감사합니다.

                한가지 추가적인 질문이있는데
                허락해주신다면 질문을 남기고 싶습니다.

                정말정말 감사합니다.
              버전 관리
              nomadlife
              현재 버전
              선택 버전
              graphittie 자세히 보기