Developer's Development

3.1.5 [Python] 모듈&패키지, 파일 IO 본문

프로그래밍과 데이터 기초/PYTHON

3.1.5 [Python] 모듈&패키지, 파일 IO

mylee 2025. 7. 1. 18:41
모듈

 

하나의 모듈은 서로 관련된 코드의 집합이자 하나의 파일을 의미하며, 함수, 클래스, 변수 등을 모듈 내에 정의할 수 있다. 이렇게 만든 모듈은 다른 Python 프로그램에서 가져와 사용할 수 있다.

 

  • 장점

- 재사용성 : 한번 작성한 코드를 여러 프로그램에서 재사용할 수 있다.

- 코드 관리 : 큰 프로그램을 작은 모듈로 나누어 관리할 수 있다.

- 네임스페이스 : 모듈마다 독립적인 네임스페이스를 제공하여 변수 이름 충돌을 방지할 수 있다.

 

  • 모듈 사용
  1. 모듈(파일) 전체를 import한다.
  2. from-import 구문을 통해 특정 함수 또는 변수만 가져올 수 있다.
  3. 모듈에 별칭을 부여할 수 있다.
  4. 특정 함수 또는 변수에도 별칭을 부여할 수 있다.
  5. 표준 라이브러리 모듈을 import 하여 사용할 수도 있다.
#1. 파일의 경로와 파일명(확장자 .py 제외)을 import 하면, 
#현재 스크립트에 다른 곳에서 정의한 스크립트를 불러올 수 있다.
import animals
print(animals.pig())

#2. from 키워드 뒤에 import 대상 스크립트(모듈)을 지정하고, 
#그 뒤로 import할 대상 메서드나 함수를 작성한다.
from animals import pig
print(pig())

#3. 파일 이름이 길거나 복잡한 경우 호출시마다 모듈명을 작성하기에 불편하여, 
#as를 붙여 모듈에 별칭을 부여할 수 있다.
from animals as am
print(am.pig())

#4. 모듈의 메서드 또는 변수에 별칭을 부여하는 것도 가능하다.
from animals import pig as p
print(p())

#5. python은 다양한 표준 라이브러리 모듈을 제공하고 있다.
import math
print(math.pi)

 

 

패키지

 

관련 있는 함수, 클래스, 변수 등을 묶어 만든 모듈을 폴더로 관리하여 구분하는 것이다. 모듈 하나 이상을 가지고 있는 폴더를 '패키지'라고 부른다.

 

  • 패키지 구동

cmd 창에서 py 파일 구동 (경로가 맞지 않으면 cd로 이동)

vscode expolorer에서 py 파일 우클릭 → 'Open in Integrgrated Terminal'을 선택하면 powershell 창에서도 구동 가능

python [구동시킬 파일명.py]  #py 파일을 먼저 생성해두어야겠죠?

 

  • 패키지 import

패키지에 포함된 모듈을 import 하기 위해서는 import 구문에서 모듈명 앞에 패키지명.을 붙여준다.

사용할 때도 패키지명.모듈명을 붙여 사용한다.

import kingdom.ground.animal
print(kingdom.ground.animal.pig())

#별칭이나 from-import 구문으로 짧게 줄여 쓰는 것도 가능하다.
import kingdom.ground import animal
print(animal.pig())

 

  • PyPI (Python Package Index)

개인 혹은 단체에 의해 개발 및 유지되는 파이썬 외부 라이브러리를 호스팅하고 배포하는 공식 저장소

  • pip : PyPI에 공유된 패키지를 검색하고 설치하기 위한 명령어이며, pip 명령어를 활용하여 특정 패키지 설치, 업그레이드, 제거, 패키지 목록 관리 등을 할 수 있다.
  • requirements.txt : 파이썬으로 인공지능 서빙 프로그램을 만들 때, 프로그램의 종속성 관리를 위해 사용하는 파일의 통상적 이름이다. 이 파일에는 프로젝트에서 사용되는 모든 패키지와 버전이 나열되어 있어, 프로젝트를 배포하거나 다른 환경에서 실행할 때 동일한 패키지 환경을 재현할 수 있도록 한다.
#requirements.txt 파일 생성
#현재 환경에 설치된 모든 패키지와 버전을 담음
pip freeze > requirements.txt

#requirements.txt 파일을 이용한 라이브러리 설치
#-r 옵션 뒤에 오는 파일 경로를 읽어 해당 파일 내에 명시된 패키지를 설치
pip install -r requirements.txt

 

 

파일 입출력

 

  • 파일 열기 : open()

인자로 경로를 포함한 파일명과 파일 열기를 모드를 알파벳으로 전달하면서 호출하면, 파일 객체를 반환하는 함수

- 첫번째 매개변수 : 파일명 (경로 포함)

- 두번째 매개변수 : 파일 열기 모드 설정 (r:읽기 모드, w:쓰기 모드-덮어쓰기, a:수정 모드-파일 끝에 내용 추가하기)

파일을 쓰기 모드로 열 때, 파일이 존재하는 경우에는 원래 있던 내용이 모두 지워지고 해당 파일이 존재하지 않으면 새로운 파일이 생성된다.

 

  • 파일 닫기 : close()

열려 있는 파일 객체를 닫아 주는 역할을 한다.

프로그램을 종료할 때 파이썬 프로그램이 열려 있는 파일의 객체를 자동으로 닫아주므로 생략 가능하나, close()를 사용해서 열려 있는 파일을 직접 닫아주는 것이 좋다.

 

  • 파일 쓰기

write() : 인자로 넘겨준 하나의 문자열을 파일에 작성한다.

writelines() : 인자로 넘겨준 리스트의 요소를 하나하나 파일에 작성한다.

f2 = open('test.txt', 'w')

today_diary = ['떡잎마을 방범대\n', '화이팅\n',
               '오늘도 맹구가\n', '보고싶다!']
f2.writelines(today_diary)

f2.close()

 

  • 파일 읽기

read() : 파일 전체 내용을 읽어와 하나의 문자열로 반환한다.

readline() : 파일에서 한 줄만 읽어와 하나의 문자열로 반환한다.

readlines() : 파일의 모든 내용을 읽어 한 줄씩을 요소로 갖는 리스트로 반환한다.

f3 = open('test.txt', 'r', encoding='utf-8')

f3_read = f3.read()
f3_readline = f3.readline()
f3_readlines = f3.readlines()

print("f3_read:", f3_read, type(f3_read))
# f3_read: 떡잎마을 방범대 화이팅 <class 'str'>

print("f3_readline:", f3_readline, type(f3_readline))
# f3_readline: 떡잎마을 방범대 화이팅 <class 'str'>

print("f3_readlines:", f3_readlines, type(f3_readlines))
# f3_readlines: ['떡잎마을 방범대\n', '화이팅\n', '오늘도 맹구가\n', '보고싶다!'] <class 'list'>

f3.close()

 

  • 파일 내용 추가하기

쓰기 모드('w')로 파일을 열 때, 이미 존재하는 파일을 열면 그 파일의 내용이 모두 사라진다.

→ 따라서 원래 있던 값을 유지하면서 단지 새로운 값만 추가해야 할 경우에는 파일을 추가 모드('a')로 열어야 한다.

 

  • with 키워드

파일을 열면(open), 항상 닫아주어야(close) 한다. with 문은 파일을 열어서 사용하고 사용이 종료되면 파일을 닫는 역할을 한다.

with open('new_test.txt', 'w', encoding='utf-8') as f:
    f.write('짱구 보고싶다!\n')
    f.write('훈이는 싫어\n')

'프로그래밍과 데이터 기초 > PYTHON' 카테고리의 다른 글

3.1.7 [Python] Streamlit  (5) 2025.07.02
3.1.6 [Python] 예외  (2) 2025.07.02
3.1.4 [Python] 클래스  (1) 2025.06.30
3.1.3 [Python] 함수  (2) 2025.06.27
3.1.2 [Python] 제어문(조건문, 반복문, 분기문)  (1) 2025.06.27