Python 인쇄 출력을 텍스트 파일로 저장하는 방법
마침내 Python 출력을 텍스트 파일로 바로 내보내는 방법을 알아냈습니다!
솔직히 저도 그런 적이 있습니다.파이썬 코드를 작성하고 실행하면 모든 출력이 콘솔에 깜빡거리기만 하죠.빠르게 확인하기에는 좋지만, 나중에 저장하고 싶다면 어떻게 해야 할까요? 예전에는 복사해서 붙여넣고 나서 절반은 잊어버렸던 걸 깨닫곤 했습니다.그래서 몇 번의 시행착오 끝에, 주로 시행착오였고, 물론 몇 번의 실수도 있었지만, 마침내 스크립트 출력을 .txt파일로 바로 보내는 꽤 간단한 방법을 찾았습니다.혹시 다른 분들이 몇 시간씩 고생하는 것을 덜어줄 수 있을지 몰라 공유해 봅니다.
기본 스크립트 시작하기
가장 먼저, 제대로 작동하는 Python 스크립트가 있어야 합니다.저는 보통 main.py파일을 하나 만듭니다.거기에 코드를 작성하면 되죠.이해가 되시나요? 스크립트가 IDE에 그냥 떠 있거나 저장조차 되어 있지 않으면 출력을 리디렉션하기가 어렵습니다.제가 사용하던 이전 ASUS에서는 고급 메뉴에 파묻혀 있었기 때문에 적절한 위치를 찾는 것이 얼마나 어려운지 잘 압니다! 어쨌든, 터미널이나 명령 프롬프트에서 스크립트를 실행하세요. Windows에서는 PowerShell이나 CMD, Linux/Mac에서는 Terminal만 있으면 됩니다.스크립트를 실행할 때 실제로 올바른 폴더에 있는지 확인하세요.
쓰기 모드로 파일 열기
처음에는 이 부분이 좀 어려웠어요.출력 파일을 여는 거죠.파이썬 open()함수가 바로 여러분을 도와줄 거예요.기본적으로 이렇게 하면 됩니다.
with open('output.txt', 'w') as file: # your code here
쓰기 모드를 의미 'w'하므로 파일이 있으면 먼저 완전히 삭제됩니다.기존 파일에 추가하려면 'a'append로 변경하세요.하지만 지금은 새로 시작하는 것을 선호합니다.참고로, 어떤 시스템에서든 전체 경로를 지정하지 않으면 현재 작업 디렉터리에 파일이 생성됩니다.스크립트가 실행되는 위치를 확인하려면 다음을 사용하세요.
import os print(os.getcwd())
print()텍스트 파일로 리디렉션
이게 중요한 단계입니다.보통은 print()콘솔에 출력을 내보냅니다.하지만 file인수를 전달하면 해당 파일에 저장됩니다.예를 들어, 다음과 같습니다.
print('Here’s my output', file=file)
터미널을 복잡하게 만드는 대신, 이렇게 하면 모든 내용이.에 저장됩니다.인쇄할 때마다 인수를 output.txt추가하는 것만으로 코드를 깔끔하게 유지하는 것이 가장 쉽다는 것을 알게 되었습니다.모든 stdout을 일시적으로 리디렉션하려면 파일 핸들을 바꿔야 하지만, 솔직히 말해서 더 복잡하고 한 번만 시도해 봤는데, 여기서는 필요하지 않았습니다.file=filesys.stdout
파일을 닫는 것을 잊지 마세요
제가 계속 저지른 큰 실수는 파일 닫는 걸 잊어버리는 것이었습니다.파일을 닫지 않으면 출력 내용이 버퍼에 남아 디스크에 실제로 기록되지 않을 수 있습니다.이 with명령문의 좋은 점은 자동으로 처리해 주기 때문에 를 호출하는 것을 기억할 필요가 없다는 것입니다 file.close().더 깔끔하고 안전하며 안정적입니다.블록이 끝나면 모든 내용이 저장되고 제대로 닫힙니다.
스크립트 실행 및 출력 확인
모든 것이 설정되면 다음 명령어로 스크립트를 실행하면 됩니다.
python main.py
또는 Linux/Mac을 사용하고 기본적으로 Python 3으로 설정되어 있는 경우 python3:
python3 main.py
.안에 출력이 표시되어야 합니다 output.txt.그렇지 않으면 스크립트 경로를 다시 확인하고, 실제로 실행 중인지 확인하거나, 어딘가에 오류가 숨어 있는지 확인해 보세요.가끔 스크립트가 자동으로 충돌하거나 인쇄 부분을 건너뛰는 경우가 있어서, print스크립트가 제대로 실행되는지 확인하기 위해 몇 가지 명령문을 추가해야 했습니다.
간단한 요약 – 로켓 과학이 아닙니다
- Python 파일을 만듭니다(
main.py) - 쓰기 모드로 파일 열기(
with open('output.txt', 'w') as file:) print(..., file=file)저장하려는 출력에 사용하세요- 블록을 사용하여
with파일을 자동으로 닫습니다. - 스크립트를 실행하고 확인하세요
output.txt
솔직히 말해서, 이 방법을 알아내고 나니 디버깅이 훨씬 수월해졌습니다.특히 장시간 실행 중이거나 나중에 로그가 필요할 때 더욱 그렇습니다.python main.py > output.txt터미널에서 직접 작업하는 방법도 있지만, 스크립트 자체에서 좀 더 제어하기 편해서 이 방법이 마음에 들었습니다.
그리고, 대량의 데이터를 출력하는 경우, file.flush()가끔씩 추가하면 모든 데이터가 메모리에 남지 않고 실시간으로 저장될 수 있습니다.스트리밍이나 로깅을 하는 경우 좋은 기능입니다.
어쨌든 도움이 되길 바랍니다.제대로 만드는 데 너무 오래 걸렸고, 얼마나 간단한지 깨닫기 전까지는 정말 머리가 아팠어요.다른 누군가도 이 글이 도움이 되어서 주말 내내 이것저것 만지작거리느라 시간을 허비하지 않기를 바랍니다.즐거운 코딩 되세요!
이 글이 도움이 되었나요?