Python을 사용하여 TXT 파일에서 텍스트를 추출하는 방법: 단계별 가이드
Python에서 TXT 파일에서 텍스트를 추출하는 방법
파이썬으로 파일 에서 텍스트를 꺼내려고 하다가 이런 문제에 부딪혔는데 .txt, 솔직히 말해서 겉보기에는 아주 간단해 보이는 작은 작업 중 하나였습니다.그런데 막상 문제가 생기기 전까지는 말이죠.경로, 인코딩, 파일 닫기 등을 몇 번 밤샘해서 시도해 본 끝에야 비로소 무슨 일이 벌어지고 있는지 알아냈습니다.파이썬에서 파일을 처리하는 게 처음이시라면, 제가 어떻게 해결했는지 아래에 정리해 두었습니다.
1단계: 샘플 .txt파일 만들기
먼저, 읽을 파일이 있어야 하죠? 방금.이라는 일반 텍스트 파일을 만들었습니다 sample.txt.이름, 숫자 등 원하는 일반 텍스트를 넣으세요.중요한 것은 파일을 쉽게 접근할 수 있는 곳에 저장하는 것입니다.스크립트와 같은 폴더에 저장하면 작업이 간편해집니다.파일이 없으면.처럼 전체 경로를 지정해야 할 수도 있습니다 r'C:\Users\YourName\Documents\sample.txt'. Windows에서는 슬래시를 사용할 때 주의하고, 원시 문자열이나 이중 백슬래시를 사용해야 합니다.또한 파일 인코딩이 Python에서 예상하는 것과 일치하는지 다시 한번 확인하세요.일반적으로 UTF-8이면 괜찮지만, 특수 문자를 다루는 경우 나중에 명시적으로 지정해야 할 수도 있습니다.
2단계: Python에서 파일 열기
여기서 잠재적인 혼란이 시작됩니다.파일을 읽으려면 Python open()함수를 사용하세요.이 함수에는 파일 이름(또는 경로)과 모드, 두 가지가 필요합니다.’r’ 모드는 읽기 모드입니다.따라서 가장 쉬운 방법은 with작업이 완료되면 파일을 자동으로 닫는 명령문을 사용하는 것입니다.다음과 같이요.
with open('sample.txt', 'r') as file: # do stuff here
를 사용하지 않고 열려고 하면 with나중에 닫는 것을 잊지 마세요.그렇지 않으면 파일 잠금이 발생할 수 있습니다.특히 Windows에서는 더욱 그렇습니다.저는 파일을 닫는 것을 잊었기 때문에 이상한 “파일이 다른 프로세스에서 사용 중입니다” 오류를 디버깅하는 데 너무 많은 시간을 허비했습니다.
파일이 같은 디렉터리에 없는 경우 전체 경로를 지정해야 합니다. Windows에서는 백슬래시를 이스케이프하거나 원시 문자열을 사용해야 합니다.r'C:\path\to\sample.txt'그렇지 않으면 Python은 현재 작업 디렉터리에서 검색하는데, 이 사실을 모르면 까다로울 수 있습니다.
3단계: 콘텐츠 추출.read()
파일이 열리면.를 호출하면 됩니다 .read().그러면 파일의 모든 내용이 하나의 큰 문자열로 저장됩니다.모든 텍스트를 한 번에 보거나 처리하고 싶을 때 유용합니다.코드는 다음과 같습니다.
with open('sample.txt', 'r') as file: content = file.read() print(content)
이렇게 하면 모든 텍스트가 출력됩니다.간단하죠? 파일에 있는 내용과 다르다면 파일 이름, 경로, 인코딩을 다시 한번 확인하세요.다시 한번 말씀드리지만, 콘텐츠에 특수 문자가 포함되어 있지 않으면 UTF-8이 일반적으로 작동합니다.
중요한 주의 사항 및 팁
- 사용하는
with것이 가장 좋습니다.자동으로 파일을 닫아주기 때문입니다.사용하지open()않을 경우 수동으로 호출해야 합니다file.close().그렇지 않으면, 특히 Windows에서 잠금 문제가 발생할 위험이 있습니다. - 큰 파일에는
.read()적합하지 않을 수 있습니다.모든 것을 메모리에 로드하기 때문에 파일이 큰 경우 문제가 될 수 있습니다.readlines()줄 목록을 가져오는 대신 를 사용하거나.를 사용하여 줄별로 반복 할 수 있습니다for line in file:.하지만 이 이야기는 다음에 하도록 하겠습니다. - 텍스트가 일반 ASCII가 아닌 경우 인코딩을 명시적으로 지정해야 합니다
open('sample.txt', 'r', encoding='utf-8'). Python이 기본적으로 다른 인코딩을 사용하기 때문에 텍스트가 깨져서 표시되는 이상한 버그가 발생했습니다.
왜 중요한가
파일에서 텍스트를 추출하는 것은 Python의 기본 기술입니다.데이터 정리, 로그 파싱, 또는 단순히 테스트 등 어떤 작업을 하든 파일을 올바르게 열고 읽는 방법을 알면 나중에 골치 아픈 상황을 피할 수 있습니다.저는 파일 모드나 인코딩을 잘못 설정해서 제대로 출력되지 않는 파일을 디버깅하는 데 너무 많은 시간을 허비했습니다.
몇 번의 시행착오를 거치며, 특히 ‘r’ 모드를 항상 지정하고, 경로를 확인하고, 인코딩을 제대로 처리해야 한다는 점을 기억해야 했습니다.만약 막혔다면 파일 위치를 다시 한번 확인하고, 파일 이름이 정확히 일치하는지, 권한이 올바른지 확인해 보세요.그리고 이상한 문자가 나타나는 경우 파일 인코딩이 원인일 수도 있다는 점을 잊지 마세요.
어쨌든, 이 기본 과정을 이해하면 훨씬 더 고급 파일 처리가 가능해집니다.파일 읽기에 익숙해지면, 이제 데이터 쓰기, 파싱, 또는 처리로 넘어가면 됩니다.도움이 되길 바랍니다.저는 이런 사소한 문제들을 파악하는 데 너무 오랜 시간이 걸렸거든요.이 글이 다른 누군가의 좌절과 밤늦게 재부팅을 덜어주기를 바랍니다!
관련 기사
이 글이 도움이 되었나요?