ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 19. Excel 및 CSV 파일 다루기
    공부합시다!/python 2023. 2. 17. 00:15
    728x90

    마지막 장이네요!

    오늘 Python 연재를 끝내면서 잠시 휴식모드로 들어가려 합니다.

    일정이 너무 바빠진 관계로..... - 다시 찾아온 기회 잘 살려봐야겠지요!
    지난 시간 파일 다루기에 이어 오늘은 Excel 및 CSV 파일 다루기 입니다.

    대용량 파일 내보내기에 많이 사용이 되는 CSV파일 다루기와 그 형제격인 Excel 파일 다루기 입니다.

    파이썬으로 이런 작업까지 

     

    '''
    Excel, CSV 처리
     1. csv 읽기
     2. csv 쓰기
     3. xls, xlsx 읽기
     4. 패키지 설치
    '''
    
    # 파이썬 외부 파일 처리
    # 파이썬 Excel, CSV 파일 읽기 및 쓰기
    # CSV : MIME - test/csv
    
    # 예제 1
    import csv
    
    with open('./resource/sample1.csv', 'r') as f:
      reader = csv.reader(f)
      next(reader)                   # csv파일의 칼럼 list 제외
      # 확인
      print(reader)
      print(type(reader))
      print(dir(reader))
      print()
    
      for c in reader:
        print(c)
    
    
    # 예제 2
    import csv
    
    with open('./resource/sample1.csv', 'r') as f:
      reader = csv.reader(f, delimiter='|')
      next(reader)                   # csv파일의 칼럼 list 제외
      # 확인
      print(reader)
      print(type(reader))
      print(dir(reader))
      print()
    
      for c in reader:
        print(c)
    
    # 예제 3
    
    with open('./resource/sample1.csv', 'r') as f:
      reader = csv.DictReader(f)
      for c in reader:
        print(c)
      
    # 예제 4
    w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
    
    with open('./resource/sample4.csv', 'w', newline='') as f:  # newline 한줄 제거
      wt = csv.writer(f)
      for v in w:           # 특정 조건을 필터링 할 경우는 for문이 적당
        wt.writerow(v)
    
    # 예제 5
    with open('./resource/sample5.csv', 'w', newline='') as f:
      wt = csv.writer(f)
      wt.writerows(w)
    
    # XSL, XSLX
    # openpyxl, xlsswriter, xlrd, xlwt, xlutils
    # pandas를 주로 사용
    # pip install xlrd
    # pip install openpyxl
    # pip install pandas
    
    import pandas as pd
    
    # 옵션 -> sheetname="시트명" 또는 숫자, header=숫자, skiprow=숫자
    xlsx = pd.read_excel('./resource/sample.xlsx')
    
    print(xlsx.head())  # 문서 앞부분 5줄
    print()
    print(xlsx.tail())  # 문서 끝부분 5줄
    print(xlsx.shape)   # 행과 열 수 출력
    
    # 엑셀 or csv 다시 쓰기
    
    xlsx.to_excel('./resource/result.xlsx', index=False)
    xlsx.to_csv('./resource/result.csv', index=False)

    728x90

    '공부합시다! > python' 카테고리의 다른 글

    18. File 다루기  (0) 2023.02.16
    17. 예외처리  (0) 2023.02.16
    16. Module과 Package  (0) 2023.02.14
    15. Class 상속  (0) 2023.02.13
    14. Class  (0) 2023.02.10
Designed by Tistory.