[DATABASE]CSV To Python

박민하·2022년 6월 21일
0

DATABASE

목록 보기
4/13

공식문서 참고


✅ CSV(Comma Seperated Value)

  CSV 데이터는 쉼표를 기준으로 항목을 구분하여 저장하는 데이터를 말한다. 콤마로 규칙적으로 구분되어 있기 때문에 엑셀과 같은 프로그램으로도 읽고 쓸 수 있다. 주로 테이블 형태로 구성된 자료텍스트 자료를 저장할 때 사용한다. JSON 데이터에 비하여 절반 이하의 용량으로 저장할 수 있다는 장점이 있다.

✔ CSV 파일 만들기

  1. 빈 파일을 연다.
  2. 콤마로 구분된 데이터를 입력한다.
  3. .csv 확장자로 저장한다.

✔ 사용 예시

1. 메뉴, 카테고리, 제품 이름을 모두 나열

2. 중복된 메뉴, 카테고리는 한 번만 나열

✔ CSV 파일 읽기

  • csv.reader( ) 또는 csv.DictRedader( ) 메소드 사용
import csv #csv파일을 다루기 위한 라이브러리 import

with open('test.csv') as csv_file:
    rows = csv.reader(csv_file, delimiter = ',')
		for row in rows:
				print(row)
  • 파이썬에서 with open (file_name) as (file_name): 구문을 이용하면 외부 파일을 연 상태로 작업한다.
  • csv.reader 메소드를 이용하면 파일 내부의 모든 행을 rows라는 변수에 담을 수 있다.
  • 모든 행을 한 줄 한 줄 읽으면서 작업을 수행하기 위해서 for 문을 활용한다.

✅ 실습

✔ CSV 파일 만들기

mkdir csv_upload
touch films.csv
touch actors.csv
...

✔ CSV 파일 읽기

  • # -*- coding: utf-8 -*- : 파이썬이 한글 인코딩을 읽을 수 있도록 추가.
  • csv파일마다 변수 설정.
  • csv.reader( ) 로 데이터 읽어오기
  • if row[0]: row의 0번째 인덱스의 데이터 개수만큼 코드가 실행되도록 함.

✔ if row[0]:

  하나의 csv파일에 여러 테이블의 데이터를 넣는 경우, A[1]:B[9] 데이터를 출력해 보면 A[1]:B[23] 까지의 데이터가 나올 것이다. 쓸데없는 빈칸까지 추가되서 데이터가 추출되는걸 방지하기 위해 if row[0]:문을 추가하는데, row의 0번째 인덱스가 갖고있는 데이터 개수만큼만 데이터를 가져오게 한다.

  즉, A[1]:B[9] 데이터는 if row[0]:문을 추가해야 하고, D[1]:F[23] 데이터는 if row[0]:문을 추가하면 D[1]:F[9] 까지만 나오게 될 것이다.

✔ mysql 추가

python db_uploader.py

  , 사이에 white space가 있어서 error가 한 번 났지만, 수정 후에는 데이터가 잘 들어간 모습을 볼 수 있다.

profile
backend developer 🐌

0개의 댓글