기타/파이썬

[Python] 모듈 만들어서 쓰기

푸쿠이 2021. 5. 16. 23:42

여기서 했던 코드를 모듈로 만들어서 사용할 것이다.

2021.05.16 - [기타/파이썬] - [Python] csv 파일 만들고, 안에 내용 쓰기

 

모듈 만들기

기능들을 함수로 만들어놓았다.

 

open_csv : 데이터를 리스트로 반환.

write_csv : 파일을 만들고, 데이터를 리스트로 받아서 파일에 씀.

 

csvmanage.py

import csv

def open_csv(file_name):
    file_name += '.csv'
    with open(file_name, 'r') as f:
        data_list = csv.reader(f)
        return list(data_list)

def write_csv(file_name, data_list):
    file_name += '.csv'
    with open(file_name, 'w', newline='') as f:
        csv_obj = csv.writer(f, delimiter=',')
        csv_obj.writerows(data_list)

 

모듈 가져다 쓰기

모듈을 불러서 함수를 사용했다.

 

모듈을 부르기 위해서는 같은 경로에 파일이 존재해야 한다.

다른 경로면 오류가 발생한다.

 

나는 csvmanage.py 파일과 test.py 파일이 둘 다 바탕화면에 위치해있다.

 

test.py

import csvmanage

list_info = [['구', '전체', '내국인', '외국인'],
             ['관악구', 200, 150, 50],
             ['강남구', 400, 310, 90],
             ['송파구', 380, 300, 80],
             ['강동구', 420, 310, 110]]

csvmanage.write_csv('함수만들기', list_info)
print(csvmanage.open_csv('함수만들기'))

 

 

경로가 달라도 사용할 수 있게 하기

파이썬에 모듈을 등록해야 한다.

 

파이썬 Shell에서 Open할 때 나오는 경로에서 lib 폴더 안에 모듈로 사용될 파일을 넣어주면 된다.

나의 경우에는 csvmanage.py를 복사해서 lib 폴더에 옮겨주었다.

그러면 경로 상관없이 모든 py파일에서 import csvmanage만 하면 사용할 수 있다.

 

우리가

import csv
import os

이렇게 사용할 수 있었던 것도 여기에 파일이 존재하기 때문이다.