goodthings4me.tistory.com
파이썬으로 북마크(즐겨찾기) 관리 프로그램을 연습해봤다. 북마크 클래스를 만들어서 객체를 생성해 사용하는 방식으로 구현했으며, db 대신 엑셀 파일을 생성하여 입력한 북마크 내용을 저장할 수 있도록 했다.
본 프로그램을 장고(django) 웹 프레임워크 환경에 적용하고 엑셀 대신에 sqlite3나 mysql 등을 활용하면 북마크 웹 프로그램이 구현될 것임
[소스코드]
# Bookmark 클래스
import os
import openpyxl
class Bookmark:
def __init__(self):
self.sitename = ''
self.title = 0
self.url = ''
self.bookmark_lst = '' # 입력값 리스트
def bookmark_set(self, sitename, title, url):
self.sitename = sitename
self.title = title
self.url = url
self.bookmark_lst = [self.sitename, self.title, self.url]
return self.bookmark_lst
def save_csv(self, response):
# 입력값을 저장(y)할 경우만 엑셀파일 접속
# self.bookmark_lst는 저장 여부에 상관없이 초기화되어야 함
if response == 'y':
if not os.path.isfile('./bookmark_db.xlsx'):
bookmark_wb = openpyxl.Workbook()
bookmark_ws = bookmark_wb.active
bookmark_ws.append(['Sitename', 'Title', 'Url'])
bookmark_wb.save('./bookmark_db.xlsx')
bookmark_wb.close()
add_bookmark_wb = openpyxl.load_workbook('./bookmark_db.xlsx')
add_bookmark_ws = add_bookmark_wb.active
row = add_bookmark_ws.max_row
try:
for col in range(1, add_bookmark_ws.max_column + 1):
add_bookmark_ws.cell(row + 1, col).value = self.bookmark_lst[col-1]
add_bookmark_wb.save('./bookmark_db.xlsx')
add_bookmark_wb.close()
self.bookmark_lst = ''
except:
print('저장 에러 발생!!\n')
self.bookmark_lst = ''
return False
return 'Save Success'
elif response == 'n':
print('저장 취소\n')
self.bookmark_lst = ''
return False
def bookmark_get(self):
read_bookmark_wb = openpyxl.load_workbook('./bookmark_db.xlsx', data_only=True)
read_bookmark_ws = read_bookmark_wb.active
print(f'입력 자료 출력\n{"="*20}')
for row_idx in range(1, read_bookmark_ws.max_row):
for col in read_bookmark_ws.iter_cols(min_col=1, max_col=read_bookmark_ws.max_column): # col= A, B, C,...
print(col[row_idx].value)
print()
return True
- 객체 속성(변수)를 이용하여 데이터(사이트명, 글 제목, URL)를 입력 받고(bookmark_set() 메서드),
- 입력된 값을 엑셀에 저장하기 전에 리스트로 추가(self.bookmark_lst 변수)하고,
- 엑셀에 저장할 때 엑셀 파일이 없으면 파일을 생성한 후 데이터를 저장(save_csv() 메서드)한다.
- bookmark_get() 메서드는 엑셀에 있는 데이터 전체를 터미널에 출력해준다.
# 객체 생성 및 메서드 호출
if __name__ == '__main__':
input_people = Bookmark()
insert_cnt = 1
while True:
try:
num = int(input('\n즐겨찾기(Bookmark)로 입력할 URL수는..? '))
except:
print('숫자를 입력하세요!')
continue
while insert_cnt <= num:
sitename = input('URL 이름: ')
title = input('글 제목: ')
url = input('URL(주소): ')
# 객체 메서드 호출
result = input_people.bookmark_set(sitename, title, url)
print(f'\n입력 자료[{insert_cnt}]:')
for n in result:
print(n)
while True:
response = input('\n입력 자료 저장할까요?("y or n"): ')
if response in('y', 'Y'):
save_result = input_people.save_csv(response.lower())
print(save_result, '\n')
break
elif response in('n', 'N'):
save_result = input_people.save_csv(response.lower())
break
else:
print('잘 못 누르셨어요!\n')
continue
if save_result:
insert_cnt += 1
if insert_cnt > num:
input_people.bookmark_get()
break
print('\n프로그램이 종료되었습니다!')
- 입력할 북마크 개수를 설정하고 입력을 하게 한다.
- 사이트 이름, 글 제목, 주소(URL)을 입력받는다.
- 입력한 내용을 다시 보여 주고, 저장 여부를 묻는다. 이때 'y' or 'n'에 대해 lower() 함수로 소문자로 만들어 호출하는 객체의 인자로 보내고, 객체 내부에서는 'y'인 경우만 엑셀에 저장하고, 저장하지 않으면 '저장 취소'를 출력하고 다시 입력하게 한다.
- 마지막으로 설정한 개수만큼 북마크가 입력되면 bookmark_get() 메서드를 호출하여 엑셀에 저장된 북마크 데이터 전체를 출력하고 반복문을 탈출하여 프로그램을 종료한다.
[실행 결과]
# 엑셀 파일(bookmark_db.xlsx)이 이미 생성되어 북마크 데이터가 있는 상태에서 실행
겨찾기(Bookmark)로 입력할 URL수는..? 2
URL 이름: goo44me
글 제목: 스마트스토어 상품 리뷰 추출하기 - 파이썬
크롤링 연습
URL(주소): https://goodthings4me.tistory.com/732
입력 자료[1]:
goo44me
스마트스토어 상품 리뷰 추출하기 - 파이썬 크롤링
연습
https://goodthings4me.tistory.com/732
입력 자료 저장할까요?("y or n"): y
Save Success
URL 이름: good4me
글 제목: 숫자 뽑기 게임 - 파이썬 Tkinter로 구현
URL(주소): https://goodthings4me.tistory.com/725
입력 자료[2]:
good4me
숫자 뽑기 게임 - 파이썬 Tkinter로 구현
https://goodthings4me.tistory.com/725
입력 자료 저장할까요?("y or n"): ㅜ
잘 못 누르셨어요!
입력 자료 저장할까요?("y or n"): n
저장 취소
URL 이름: good4me
글 제목: 온채널 엑셀폼 다운로드 - 업무자동화 프로
그램
URL(주소): https://goodthings4me.tistory.com/714
입력 자료[2]:
good4me
온채널 엑셀폼 다운로드 - 업무자동화 프로그램
https://goodthings4me.tistory.com/714
입력 자료 저장할까요?("y or n"): y
Save Success
입력 자료 출력
====================
보람에
파이썬 관련 코딩 연습한 목록 정리
https://blog.naver.com/borame365/222702307617
good4me
[파이썬기초(예제)] 김밥 주문 계산하기
https://goodthings4me.tistory.com/733
goo44me
스마트스토어 상품 리뷰 추출하기 - 파이썬 크롤링
연습
https://goodthings4me.tistory.com/732
good4me
온채널 엑셀폼 다운로드 - 업무자동화 프로그램
https://goodthings4me.tistory.com/714
프로그램이 종료되었습니다!
(venv) D:\pythonDev>
▷ 객체 관련 자료 더보기>>
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
가위바위보 게임 [파이썬기초예제] (0) | 2022.04.21 |
---|---|
bmi 계산하기 - 한국인의 체질량 지수 계산 [파이썬기초예제] (0) | 2022.04.20 |
파이썬 반복문 - 김밥 주문 계산하기 [파이썬기초(예제)] (0) | 2022.04.15 |
[파이썬기초(예제)] 회원가입 아이디 및 비밀번호 생성, 유효성 체크 기능 (0) | 2022.04.15 |
파이썬 openpyxl 활용 엑셀 시트 이름 가져오기 (0) | 2022.04.13 |
댓글