Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

간단한 팁: 파이썬을 이용해 대용량 텍스트 파일을 읽는 방법

by
Length:ShortLanguages:

Korean (한국어) translation by Dae-yeop Lee (you can also view the original English article)

이번 글은 다음과 같은 질문으로 곧장 시작하겠습니다: 큰 텍스트 파일을 읽는 데 파이썬이 정말로 필요합니까? 일반적으로 사용하는 워드프로세서나 텍스트 편집기로도 충분하지 않을까요? 여기서 크다는 건 굉장히 큰 파일을 의미합니다!

자, 그러한 파일을 읽는 데 파이썬이 필요한지 여부에 대한 몇 가지 증거를 살펴보겠습니다.

파일 가져오기

실험을 수행하기 위해서는 굉장히 큰 파일이 필요합니다. 이번 튜토리얼에서는 UCSC 게놈 생물정보학(UCSC Genome Bioinformatics) 다운로드 웹 사이트에서 제공하는 파일을 가져오겠습니다. 특히 여기서 사용할 파일은 hg38.fa.gz 파일입니다. 이곳에 적혀 있는 이 파일에 대한 설명은 다음과 같습니다.

한 파일로 된 "소프트 마스크된" 어셈블리 시퀀스. RepeatMasker 및 Tandem Repeats Finder(12개 이하의 주기로)의 반복은 소문자로 표시되며, 비반복 시퀀스는 대문자로 표시된다.

위 내용이 이해되지 않더라도 유전학 용어와 관련된 것이므로 걱정할 필요는 없습니다. 이번 튜토리얼에서 중요한 것은 파이썬을 이용해 매우 큰 텍스트 파일을 읽는다는 개념입니다.

계속 진행하기 위해 hg38.fa.gz를 다운로드합니다(파일이 938MB에 달하므로 유의하기 바랍니다). 7-zip 또는 여러분이 즐겨 쓰는 툴을 이용해 파일의 압축을 풉니다.

파일의 압축을 풀고 나면 hg38.fa라는 파일이 생깁니다. 이 파일의 이름을 hg38.txt로 이름을 바꿔서 텍스트 파일로 만듭니다.

전통적인 방식으로 파일 열기

여기서 전통적인 방식이라 말한 것은 워드프로세서나 텍스트 편집기를 이용해서 파일을 여는 것입니다. 그렇게 하려고 했을 때 어떤 일이 일어나는지 살펴보겠습니다.

먼저 마이크로소프트 워드(Microsoft Word)를 이용해 파일을 열어 보면 다음과 같은 메시지가 나타납니다.

Microsoft Word cant open a file because its too large

윈도우 기반 컴퓨터에서는 워드패드나 메모장으로 파일을 열지도 못했지만 맥 OS X 컴퓨터에서는 텍스트 편집기로 파일을 열 수는 있었습니다.

하지만 여러분이 요점을 알아차렸다면 매우 큰 파일을 여는 확실한 방법을 마련하는 것이 좋을 것입니다. 이번 간단 팁에서는 파이썬을 이용해 이를 수행하는 방법을 살펴보겠습니다.

파이썬을 이용해 텍스트 파일 읽기

이번 절에서는 파이썬을 이용해 대용량 파일을 읽는 방법을 살펴보겠습니다. 대형 텍스트 파일에서 첫 500줄을 읽고 싶다고 해봅시다. 이 경우 다음과 같이 간단하게 할 수 있습니다.

hg38.txt에서 한 줄씩 500줄을 읽었고, 그 줄을 새로운 텍스트 파일인 output.txt에 쓴 것을 눈여겨보십시오(output.txt 파일은 이곳에서 확인할 수 있습니다).

그런데 텍스트 파일을 한 줄씩 추출해서 다른 텍스트 파일로 보내지 않고 텍스트 파일을 직접 탐색하고 싶다고 해봅시다. 특히이 방법이 더욱 유연해 보이기 때문입니다.

큰 텍스트 파일 탐색하기

위 단계를 통해 대용량 파일에서 한 줄씩 추출해서 다른 텍스트 파일로 전송하는 식으로 대용량 텍스트 파일을 읽을 수는 있었지만 대용량 파일을 한 줄씩 추출하지 않고 직접 탐색하는 편이 더 나을 것입니다.

이 경우 다음과 같이 파이썬으로 터미널 화면을 통해 텍스트 파일을 읽을 수 있습니다(한 번에 50줄씩 파일을 탐색).

이 스크립트에서 볼 수 있듯이 이제 터미널을 이용해 대용량 텍스트 파일을 즉시 읽고 탐색할 수 있습니다. 종료하고 싶다면 터미널에 STOP(대소문자 구분)을 입력하기만 하면 됩니다.

이제 파이썬을 이용해 굉장히 큰 텍스트 파일을 아무런 문제 없이 매끄럽게 탐색하는 방법을 아셨을 것입니다. 이로써 파이썬이 또 한번 우리의 삶을 편리하게 만들기 위해 노력하는 언어임을 증명했습니다!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.