Bunny Code

[Python] - 19) 파일 처리, with 구문 본문

Python Basic

[Python] - 19) 파일 처리, with 구문

버즈밴드 2020. 8. 24. 19:17

이번 포스팅에서는 파일 처리와 관련되는 함수들을 살펴볼게요!

(파일 = '텍스트 파일' + '바이러니 파일' 로 나뉘는데, 일단 '텍스트 파일' 관련된 내용만 볼게요.)

 

1) 첫번째로 파일 열고 닫기

# 파일 열기

<파일 객체> = open(<문자열 : 파일 경로>, <문자열 : 읽기 모드>)

 

# 파일 닫기

<파일 객체>.close()

 

이 때, 파열 열기 모드는 다음과 같습니다.

파일 열기 모드 설명
w write 모드 (새로 쓰기 모드)
a append 모드 (뒤에 이어서 쓰기 모드)
r read 모드 (읽기 모드)

예시 : 

코드 입력 화면

위의 코드가 입력된 경로, 파일에 "basic.txt" 파일이 생긴 것을 볼 수 있습니다. 

basic.txt. 파일 생성

클릭해서 열어 보면, 아래와 같이 텍스트가 입력된 텍스트 파일인 것을 확인할 수 있습니다. 

basic.txt 텍스트 입력 화면

주의사항 : 파일을 open() 함수로 열면 꼭 close() 함수로 닫는 습관을 기르세요!!

(프로그램이 종료되면 자동으로 파일이 모두 닫히기는 하지만, 긴 프로그램을 만드려고 할 때 문제될 수 있으므로 실수하지 않도록 항상 닫아주는 것이 좋습니다.)

 

2) with 키워드 

위의 주의사항에서도 언급 했듯이 프로그램이 길어지면, open() 함수와 close() 함수 사이에 많은 코드가 들어갑니다. 

그래서 파일을 열고 닫지 않는 실수를 하는 경우가 생길 수 있는데, 이러한 것을 방지하기 위해 with 키워드가 생겼습니다. 

with 키워드를 통해 함수를 코드를 작성하면, with 구문 부분이 종료될 때 자동으로 파일이 닫힙니다. 

(tensorflow 로 perceptron 구현할 때도 사용했었는데, 기억 나시나요?)

 

with open(<문자열 : 파일 경로>, <문자열 : 읽기 모드>) as <파일 객체> :

    <문장>

 

예시 : 

코드 입력 화면
생성된 txt 화면

이렇게 with 구문을 사용하면, 파일을 열고 닫지 않는 실수를 줄일 수 있겠죠? 

 

3) 텍스트 읽기

<파일 객체>.read()

위의 코드로 파일 내부의 데이터를 모두 읽어 출력할 수 있습니다.

예시 :

코드 입력 화면
코드 출력 화면

아까 text 파일에 입력한 "with 구문으로 텍스트 작성해보기" 가 출력되어 나온 것을 확인할 수 있습니다. 

 

4) 텍스트 한 줄 씩 읽기

텍스트를 사용해 데이터를 구조적으로 표현할 수 있는 방법으로 CSV, XML, JSON 등이 있는데, 이 중 CSV 를 살펴볼게요. 

CSV = Comma Separated Values 의 줄임말인데, 쉼표들로 데이터를 구분하는 방식입니다. 

예를 들어, 

회사, 기종, 시리즈

애플, 아이폰, xs max

삼성, 갤럭시, 노트 20 

위와 같이 한 줄에 하나의 데이터를 나타내며, 각각의 줄에서는 쉼표를 사용해 데이터를 구분해서 입력합니다. 

예시로, 1000명의 이름, 키, 몸무게 데이터를 가진 파일을 만들고 파일을 한 줄씩 읽어 들여 처리하는 방법을 알아볼게요!

(random, random.randrange 같은 것들은 아직 안 배웠는데 일단 사용해보겠습니다.)

코드 입력 화면
생성된 1000명의 데이터

 

이제 생긴 데이터를 for 반복문으로 한 줄 씩 읽어줍니다. 

for <한 줄을 나타내는 문자열> in <파일 객체> :

    pass

위의 코드를 사용해서, 키와 몸무게로 BMI 도 계산해봅시다!

코드 입력 화면
코드 실행 화면

이렇게 파일의 데이터를 한 줄 씩 읽으면서, 원하는 데이터를 입력받아 사용할 수도 있습니다!! 

예시가 좀 어려운데 한 줄 한 줄 무슨 뜻인지 이해하고 기억 안나는거 복습 하시면 도움이 되실 것 같습니다. 

 

 

'Hello Coding 파이썬' 을 참고하였음.

 

Comments