본문 바로가기

교육/Pyhotn 180709-180713

3일차 library

library

library 설치방법

파이참 > ctrl + alt + s 눌러 셋팅 창 띄움
Project > Project interpreter 선택 > + 버튼 선택 > packet 검색 및 설치

Object Serialization

pickle

pickle.load

pickle.dump


DB

shelve - DB. dict처럼 사용


엑셀 파일 제어

xlsxWriter: 쓰기전용

openpyxl: 읽기 쓰기 가능 (library 설치 필요)

import openpyxl


# overwrite

wb = openpyxl.Workbook()

ws1 = wb.active

ws1.title = 'sheet1'

ws2 = wb.create_sheet('sheet2')


ws1['A1'] = 10

ws1['B1'] = 20

ws1['C1'] = '=sum(A1:B1)'

ws1['A2'] = 'korea'

ws1.append([100, 200, 300, 400])

ws2['A1'] = 'hello'


wb.save('my.xlsx')

wb.close()


# read

wb = openpyxl.load_workbook('my.xlsx')


ws1 = wb['sheet1']

ws2 = wb['sheet2']


print(ws1['A1'].value)

print(ws1['C1'].value)

print(ws2['A1'].value)


print('행의 갯수: ', ws1.max_row, ' 열의 갯수: ', ws1.max_column)


for c1, c2, c3, c4 in ws1.rows:

    print(c1.value, c2.value, c3.value, c4.value)


ws2['B1'] = 'hi'

wb.save('my.xlsx') # 수정이 있는 경우 반드시 저장 필요


wb.close()



XML Parser

beautifulSoup4

  • 자식, 후손 탐색: . find findAll
  • 부모: parent
  • 형제: findNext, findPrevious
# song.xml file
# <kpop>
#     <songlist>
#         <song album="album1">
#             <singer>singer1</singer>
#             <title>title1</title>
#         </song>
#         <song album="album2">
#             <singer>singer2</singer>
#             <title>title2</title>
#         </song>
#         <song album="album3">
#             <singer>singer3</singer>
#             <title>title3</title>
#         </song>
#     </songlist>
# </kpop>

from bs4 import BeautifulSoup

fp = open('song.xml')
soup = BeautifulSoup(fp, 'html.parser')
fp.close()

# print(soup) # root element (=전체 xml) 출력

### 자식 관련
# print(soup.songlist) # songlist 포함 하위 element 출력 = print(soup.find('songlist'))
# print(soup.find('song', {'album':'album2'})) # <song album="album2"> 인 element 출력
# print(soup.find('song', {'album':'album2'}).title) # <title>title2</title>
# print(soup.find('song', {'album':'album2'}).title.string) # title2
# print(soup.findAll('song')) # song element 전체를 list로 출력

### 부모 관련
song = soup.find('song', {'album':'album2'})
# print(song.parent) # songlist 포함 하위 element 출력
# print(song.parent.parent) # root element (=전체 xml) 출력
print(song.findNext('song')) # 다음 song element (=album3)
print(song.findPrevious('song')) # 이전 song element (=album1)

### element 추가
song = soup.new_tag('song', album='album4')
singer = soup.new_tag('singer')
singer.string = 'singer4'
title = soup.new_tag('title')
title.string = 'title4'
song.append(singer)
song.append(title)

soup.songlist.append( song )

fp = open('song.xml', 'w')
fp.write(soup.prettify())
fp.close()

### 삭제
soup.songlist.decompose()
print(soup)

PyQT5

PyQt5 / PyQt5-sip / pyqt5-tools (pyqt5-tools v5.9.1.1 까지는 파이썬 3.7 에서 설치가 안됨) 설치


C:\Program Files\Python36\Lib\site-packages\pyqt5-tools 경로에서 (경로는 파이참 > settings > project interpreter 의 경로를 따름)

designer.exe 파일의 바로가기를 바탕화면에 만든다.


테스트 코드 pyqtTest.zip

google 에서 api 검색 pyqt {keyword} (ex: pyqt QPushButton)


python qt 책은 없음. 그냥 qt 책 사서 공부하기

'교육 > Pyhotn 180709-180713' 카테고리의 다른 글

4일차 sqlite  (0) 2018.07.12
4일차 python 확장 - C 언어  (0) 2018.07.12
3일차 Class  (0) 2018.07.11
2일차 module  (0) 2018.07.10
1일차  (0) 2018.07.09