본문 바로가기
코딩코딩/파이썬

OS, xlrd, openpyxl,예외처리

by g0n1 2020. 7. 8.
728x90

1 디렉토리 관리

# 현재 작업 디렉토리 반환
os.getcwd()

os.chdir("어쩌구")
- 어쩌구 디렉토리로 이동

os.listdir("어쩌구")
- 어쩌구 폴더 내의 모든 파일과 폴더 목록을 반환함

os.path.exists("C:\어쩌구\저쩌구")
- 입력한 경로(폴더, 디렉토리)가 존재하면 True, 없으면 False

os.mkdir("C:\python\python2")
- 입력한 경로 제일 마지막 폴더를 생성
(이 경우에는 python2가 생성)

os.makedirs("C:\python\python2")
- 입력한 경로 모두 생성함
(python, python2 폴더 모두 생성)

os.rmdir() / os.removedirs()
- mkdir의 반대 삭제해주는데 개발자들 삭제하는거 무서워해서 잘 안 씀
- 마지막 폴더가 비어있지 않으면 오류가 발생

★파일 경로 입력할때, \n이나 \t같은 이스케이프 코드로 인식하지 않도록 \를 두번 쓰거나 /로 써도 된다★


2 파일 관리

2-1 txt 관리

기호 모드
t 텍스트(기본)
b 바이너리
r 읽기(기본)
w 쓰기
a 이어쓰기
+ 읽기, 쓰기

file = open('test1.txt', 'r')
file.close()

2-2 readline() / readlines()

  • readline() : 한줄씩 읽고 반환
  • readlines() : 파일에 있는 모든 문자열이 들어간 리스트 반환

2-3 DataFrame

openpyxl로 불러오는 법
import openpyxl
-> workbook = openpyxl.load_workbook("파일 이름")
-> sheet = workbook["Sheet1"]

csv로 불러오는 법
import csv -> csv.reader("파일 이름")

xlrd로 불러오는 법
import xlrd
-> xlrd.open_workbook("파일 이름")
-> book.sheet_by_name('Sheet1') 아니면 sheet_by_index(0) 이름 아니면 인덱싱으로 시트 지정

import openpyxl

wb = openpyxl.load_workbook("data/부품구입대장.xlsx")
sht = wb['Sheet1']

df={}
when=[]
where=[]
what=[]
no=[]
pp=[]
price=[]




for i in range(5, sht.max_row+1):
    when.append(sht.cell(row=i, column=1).value)
    what.append(sht.cell(row=i, column=3).value)
    no.append(sht.cell(row=i, column=4).value)
    price.append(sht.cell(row=i, column=6).value)
    
df={
    "날짜":when,
    "품목":what,
    "수량":no,
    "금액":price
}
DF = pd.DataFrame(df)
DF

3. 예외처리

  • try : 예외가 발생할 문장
  • except 예외 종류 : 예외가 발생했을 때 실행할 문장
  • else : 예외가 발생하지 않을 때 실행할 문장
    에러가 나는 코드를 try:에 넣어주면 된다.
728x90

댓글