모듈화
- 프로그램을 설계할 때 복잡한 프로그램일수록 하나의 파일로 구현하기는 쉽지 않다. 그래서 복잡한 프로그램을 설계할 때는 모듈을 이용한다. 메인 모듈 밑에 여러 개의 하위 모듈을 구성하는 식으로 작은 단위로 나누어 관리하고 개발한다.
모듈(Module)
- 파이썬 모듈이란, 함수나 변수 클래스 등이 정의된 파이썬 파일로 만들기 위해서는 간단히 .py확장자를 가진 파일에 코드를 작성하면 된다. 모듈은 표준 모듈(파이썬에서 제공)과 사용자 모듈(개발자가 만든)로 나뉜다. 다른 스크립트에서 import 구문을 사용하여 가져올 수 있다.
Colab에서 모듈 만들기
- 모듈을 만들어보자. colab에서 사용자 모듈을 만들어 사용해보자.
이런 모듈을 만들었다. 먼저 원하는 파일명을 작성하고(파일명을 작성할 때는 언더바(_)를 이용하여 작성한다.) 코드를 만든다. 그리고 이 파일을 .py파일로 저장하고 colab에 업로드를 하면 사용할 수 있다.
Colab에서 모듈 사용하기
- 위에서 만든 모듈을 사용해 보자.
먼저 모듈의 경로를 추가해 준다.
그리고 모듈 이름으로 import 하고 사용해 주면 원하는 결과값을 얻을 수 있다.
모듈을 작성하고 사용하는 것은 쉬운데, 다운받고 드라이브에 넣어주는데 조금 헤맸다. 한번 해봤으니 이제 잘할 수 있을 거 같음.
파일 입출력
- 파이썬에서는 표준 입출력 함수인 input()과 print() 함수로 프로그램의 입출력을 수행할 수 있다. 그리고 파일의 저장된 내용을 읽고 쓰는 동작은 파일 객체를 사용하여 수행할 수 있다.
파일 열기
- 파일을 열려면 open 함수를 사용한다.
open 함수를 이용하여 파일을 열었을 경우 close() 함수를 사용하여 파일 객체를 닫아줘야 한다. close() 함수를 사용하지 않으면 데이터가 저장되지 않는다.
파일 쓰기
- 파일에 내용을 쓰기 위해서는 write() 함수를 사용해야 한다. open("파일명", 'w')를 사용하였을 때, 파일이 없으면 파일을 만들어주고, 있으면 덮어씌워 준다. write("string")는 문자열을 파일에 작성해 주고, writelines("list") 리스트를 파일에 작성해 준다.
위처럼 'w' 모드를 사용하여 글을 써주면 파일 내부에 작성되는 것을 볼 수 있다. 참고로 data.txt 파일이 없었는데 만들어주기도 했다. write("string") 함수는 string을 txt 파일 안에 적어주고, writelines("list") 함수는 list의 값을 적어준다.
writelines를 사용한 결과이다.
파일 읽기
- open() 함수로 파일을 열고 파일을 읽기 위해서는 read() 함수를 사용해야 한다. read()는 문자열 형식으로 변환해서 반환하, readline()는 라인 단위로 읽어서 문자열로 반환한다. 그리고 readlines()는 처음부터 끝까지 라인단위로 읽어서 리스트로 반환한다.
내가 만든 파일을 전부 읽기 위해 read() 함수를 사용하고 반복문을 돌려서 확인했다. ()안은 읽고 싶은 글자의 개수를 입력하면 된다. readline()과 readlines() 함수도 이 중 원하는 것을 사용하며 자신이 원하는 출력값을 얻으면 된다.
with 문
- with문을 사용하면 파일을 열고 작업을 수행한 수 자동으로 파일을 닫는다. 프로그램 자원의 활용은 "자원획득 - 자원의 사용 - 자원의 반납"으로 이어진다. open() 함수와 함께 사용하면 "파일을 열기(자원의 획득) - 파일 안의 내용을 사용(자원의 사용) - 파일을 닫기(자원의 반납)" 로 사용될 수 있다.
with 문을 사용할 때, ":with expression as target:suite" 형태로 사용해야 한다.
이미지를 보면 마지막에 close()를 사용하여 파일을 닫아주지 않고도 자동으로 닫혔다는 것을 알 수 있다. 그리고 "as f" f라는 객체를 만들겠다는 것을 의미한다
with 문과 예외처리를 함께 사용할 수 있다..
'Python' 카테고리의 다른 글
Python 파일 입출력 라이브러리 (0) | 2024.03.25 |
---|---|
Python 타입 어노테이션 (0) | 2024.03.24 |
Python 예외처리 (0) | 2024.03.20 |
Python Special Method (1) | 2024.03.20 |
Python 상속 (0) | 2024.03.20 |