정의

모듈은 쉽게 말해 남들이 만들어 놓은 것을 갖다 쓰는 것을 말한다.

직접 만드는 것이 아니라.. 갖다 쓰는 것! import를 통해 갖다 쓴다.

다른 사람들의 솔루션을 활용하여 개발속도, 신뢰도 향상을 꾀할 수 있다.

image

  • 모듈, 라이브러리 : 연장이 되어, 간단한 프로그램을 만들 수 있다.
  • 프레임워크 : 좀 더 큰 개발, 웹/기계학습 등을 체계 안에서 개발할 수 있다


CSV 모듈

기존 9강. mandoo_management 프로젝트를 그대로 사용한다.
csv_read_practice.py

먼저 csv모듈을 이용한 읽기 방법

  • 사용방법 : import csv
    *csv모듈은 아나콘다 설치시, 이미 미리 설치되었으므로, import만 해주면 된다.
  • csv파일 여는 법/닫는 법은 기존과 똑같다.
  • 라인을 읽는 readlines()대신 -> csv.reader(f)로 읽는다. 읽은 lines를 for문을 통해 출력해보자.
    - 이전에서는 읽은 csv를 콤마기준으로 짜르는 .split(')의 과정이 필요없게 된다. 자동으로 나누어져 있다.
    image


기존의 프로젝트를 바꾸어 개선해보자.

  1. 먼저 import csv
  2. lines = f.readlines() -> csv.reader(f)
  3. for문 안에서,
    info = line.split(',') -> 삭제
    info[n]->line[n]으로 변경
    image


csv모듈을 이용한 쓰기 방법

csv_write_practice.py

  • 여는법/닫는법은 동일하나, 열 때, 마지막인자에 newline=''을 비워주는 인자를 넣어줘야 작성후 한줄바꾸기가 없어진다.
  • f.write('{}, {}, {}'.format(, , )의 방식에서 ->
    (1)  (읽기처럼)변수를 한번 거쳐준다. csv_writer =  csv.write(f)
    (2)  변수를 이용해서, csv_writer.writerow(  [리,스,트,형,태] ) 만 넣어주면,   '{},{},{}\n'.format 줄바꿈을 하지 않아도 된다.
    image
    image
    *csv쓰기를 할 때, f = open시 3번째 인자 newline=''을 주지않으면, writerow 이후 줄바꿈1줄이 자동으로 시행된다.

  • csv쓸 때, open시 newline=''을 주면, 자동으로 줄바꿈이 생기지 않는다.
    image
    image

기존 프로젝트를 개선해보자.

  • f_output = open('employee_result.csv', 'w' , newline='') 3번째 인자 추가
  • 읽기처럼 쓸 때도, 쓰기변수 생성 : csv_writer = csv.write(f) 
  • 기존의 f.write('이름, 출근시간, 퇴근시간, 시급, 근무시간, 일당\n') -> 쓰기변수로 writerow함수 + 내용물은 배열로 + 줄바꿈\n은 삭제
    csv_writer.writerow(['이름', '출근시간', '퇴근시간', '시급', '근무시간', '일당'])
  • for문안에서는, f.write( ' {}, {} \n '.format( , ) )했던 것을 주석처리[ ctrl + / ] ->
    csv_writer.writerow( [
                                              배열로 각 인스턴스.필드, 함수 채워줌
    ])
    image
    image





내가 만든 파이썬 파일 분할하고 import하기

employee.py

내가 만든 class 정의 부분과 <---> 본격적인 f = open 읽기 ~ 작업 ~ 쓰기 까지를 분리하고 싶다.

  1. 새로운 파이썬 파일을 만들자. employee.py
  2. class Employee: 정의부분만을 잘라내서 붙힌다.
    image
  3. 기존의 mandoo_wage_calculator.py 에서는 클래스가 빠져나갔을 것이므로, 클래스의 인스턴스 생성시 빨간색 오류가 뜰 것이다.
    from employee import Employee
    - from같은 프로젝트내 py파일 employee.py를 불러오고
    - import는 py파일안의 클래스를 가져온다는 뜻이다.
    image
    image
    image


+ Recent posts