파이썬과 라이브러리_1

우주먼지·2020년 7월 8일
0

인공지능 사관학교

목록 보기
6/15

파이썬과 라이브러리

OS 모듈

os의 기능을 가진 모듈이다.

import os
os.path.sep

\이는 윈도우의 구분자를 나타내는 것이다. (현재 운영체계의 path separator)

str0 = "C:"+os.path.seq # c에서는 구분자가 잘 붙지 않으므로 직접 선언해줘야함
str1 = 'Users'
str2 = 'Public'
str_path = os.path.join(str0, str1, str2)

join을 이용하여 path를 만들어주면 편하게 만들 수 있다.

os.getcmd() # 현재 작업 폴더
os.chdir(str_path) # 새로운 작업 폴더로 이동
str_path_abs = os.path.abspath('토너주문.txt')
os.path.basename(str_path_abs) # 파일부분
os.path.dirname(str_path_abs) # 폴더부분

현 작업폴더의 특정 파일까지의 절대 경로를 만들어준다.
파일이름만을 가져온다.(파일 여부 확인 : os.path.isfile(str_path))
폴더부분만 가져온다. (폴더 여부 확인 : os.path.isdir(str_path))

os.chdir('address')
os.path.getsize('data_coffe.csv')

data_coffee.csv파일의 크기를 확인하는 방법이다.

list_dir = os.listdir()
list_dir.sort()
for x in list_dir : 
  if x.lower()[0] == 'c':
      print(x)

현 작업 폴더의 파일을 모두 리스트에 저장.
리스트를 정렬.
'c' 또는 'C' 로 시작하는 파일명을 모두 출력한다.

if not os.path.exists(name_subfolder): 
	os.makedirs(name_subfolder) # 파일 생성
os.rmdir(name_subfolder)  # 파일 제거

파일이 있는지 확인후, 없으면 생성. 그 후 생성된 파일을 제거해준다.

for folderName, subFolder, fileName in os.walk(str_path):
	print(folderName)
    print(subFolder)
    print(fileName)

현채 폴더 이하의 폴더를 나타낸다.

Pickle 모듈

import pickle
x = [1, 2, 3,{'name':'john', 'age':'30', 'height':'180'}]
f = open('my_pickle.pkl', 'wb')
pickle.dump(x, f) # x의 내용 저장
del x # x삭제
new_x = pickle.load(open('my_pickle.pkl', 'wb')) # 저장했던 x의 내용 불러오기
print(new_x)

복합 객체인 x를 dump하여 저장해놓은 뒤, 일단 x를 지운다. 그 후 저장해 놓은 내용을 불러온다.
학습 완료 후 주피터를 닫으면 학습내용이 날라가기 때문에, 학습된 결과를 pickle을 이용하여 저장해 놓은 후, 다시 시작할 때 불러와서 사용한다. 하지만 학습도중 끊기면 다시 시작하기는 힘들다.(딥러닝에서는 중간중간 save가 가능하다.)
pickle이 csv, excel중 가장 빠르고 용량은 행과 열을 곱해서 2억개까지 가능하다.

shelve 모듈

import shelve
x = shelve.open('MyDict')
x['name'] = 'john'
print(list(x.keys()))
x.close()

외부에(파일로) 저장해두는 딕셔너리라고 생각하면 된다. open으로 불러오는 것만으로 dict처럼 사용이 가능한 라이브러리이다.

파일 다루기

excel 스프레드시트 컨트롤

import openpyxl
wb = openpyxl.load_workbook('my_excel.xlsx')
wb.sheetnames 

sh = wb['Sheet1']
cl = sh['A1']
print(cl.value)
print(sh.['A1'].value)
print(sh.cell(1, 1).value)

openpyxl은 설치가 필요하다
workbook을 객체로 가져온 후, sheet이름을 list로 가져온다. 그 후 sheet1의 내용을 sh에 저장한후, 사용하길 원하는 특정셀을 읽어오고 출력한다. 밑에 print 3개는 모두 같은 결과를 출력한다.

my_wb = openpyxl.Workbook()
print(my_wb.sheetnames)

my_wb라는 sheetbook을 메모리에 저장된 상태이다.

my_sh = my_wb['Sheet']
my_sh['A1'].value = 999 # my_sh['A1']와 같다
my_sh.title = 'MySheet1'
my_sh2 = my_wb.create_sheet(index=0, title='MySheet2')
my_wb.save('my_new_excel.xlsx')

새로운 sheet를 만들어서 내용을 저장하고 메모리 안에 workbook을 저장해준다.

profile
안녕하세요 ㅎㅎ

0개의 댓글