파이썬_실전 프로젝트

데이터파일 불러오기

처리해야할 데이타가 많아지면, 일일이 변수에 저장하는게 힘들어집니다.

이럴땐 파일에서 불러오는게 편합니다.

 

파일 통째로 불러오기
filename = 'q008_data.txt' 
with open(filename) as file_object:
    contents = file_object.read()
    

불러오면, 모든 텍스트가 contents이라는 하나의 긴 문자열로 들어가서, contents[n] 형식으로 한글자씩 불러서 사용할수 있습니다.

 

파일을 라인단위로 불러오기(리스트)

한라인을 하나의 문자열로, 리스트 형식으로 불러옵니다.

filename = 'q008_data.txt' 
with open(filename) as file_object:
	lines = file_object.readlines()
	

n번째 줄이 lines[n-1]에 문자열로 들어갑니다. 라인단위 lines[n], 1차원 리스트이지만, lines[n][m] 처럼 2차원 리스트나 배열처럼 불러서 사용할수 있습니다.

 

하나의 긴 라인으로 불러오기
filename = 'q008_data.txt'
with open(filename) as file_object:
	lines = file_object.readlines()

pi_string =''
for line in lines:
	pi_string+= line.rstrip() #오른쪽 끝 공백을 제거하면서 병합
	

앞서 라인단위로 불러왔던 리스트를, 반복문을 통해서 하나의 라인으로 합치는 과정입니다.

첫번째 통째로 읽어오는 결과물과 같은거 같은데, 정확한 차이는 저도 좀더 알아봐야겠네요.

합칠때는 라인끝마다 공백이 있는데,  .rstrip()이라는 함수로 제거해주어야 합니다.

 

2차원 리스트로 불러오기(배열처럼 사용)
filename = 'q018_data.txt'
with open(filename) as data:
    lines = data.readlines()

numbers=[]
for line in lines:
	numbers.append(line.split())

아마 수열문제 같은걸 풀기위해서 주로 사용하게 될 방법일텐데, 앞서 라인단위로 불러온 리스트를 .split()이라는 명령으로 공백을 기준으로 자른다음에, numbers라는 새로운 리스트안의 리스트, 2차원 리스트로 할당하는 방식입니다. 

 

URL로 다운받은 파일 사용하기
from urllib.request import urlretrieve
urlretrieve("https://raw.githubusercontent.com/nomadlife/project-euler/master/q008_data.txt", "q008_data.txt")

주소와, 저장할 파일이름을 정해주면, 나머지는 앞부분에 설명한, 리스트나 문자열로 불러오는 코드를 이어붙이면 됩니다.  참고로 Github상의 파일을 불러올때는 url주소가 약간 다르니 참고하세요. (https://github.com/~~ 이 아니고, https://raw.githubusercontent.com/~~ 으로 바꿔줘야됩니다.)

 

아래 링크는 string, List, Array 사용법을 설명한 자료이니 참고하시면 되겠습니다.

http://www.physics.nyu.edu/pine/pymanual/html/chap3/chap3_arrays.html

댓글

댓글 본문
작성자
비밀번호
버전 관리
nomadlife
현재 버전
선택 버전
graphittie 자세히 보기