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>

▷ 객체 관련 자료 더보기>>
[python] 클래스(class)와 객체(object) 이해하기
파이썬 클래스(class)와 객체(object) 이해하기 ■ 함수로 아빠 나이를 관리하는 간단한 프로그램을 작성하면, # Father Age 관리 프로그램 fa_age = 39 # 전역변수 def up_fa_age(): global fa_age # 전역변수 사..
goodthings4me.tistory.com
[python] 파이썬 클래스와 객체의 본질, 그리고 독특한 특성
■ 객체 변수의 선언과 초기화 # 아래 클래스에서 메서드 정의만 보이고 변수 선언은 없지만, 파이썬은 객체에 필요한 변수 i를 알아서 생성해준다. i변수가 생성되는 시점은 객체 내에서 해당
goodthings4me.tistory.com
[python] 파이썬의 변수, 객체, 그리고 참조 주소
■ 파이썬에서 모든 자료(type)는 객체이기 때문에 변수에 객체를 대입하면 특정 메모리 주소를 할당받게 되고, 그 변수를 다른 변수에 대입하면 같은 객체 주소를 참조하게 된다. ■ 파이썬의 기
goodthings4me.tistory.com
블로그 인기글
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
엑셀 시트 분리 저장 - 엑셀 파일의 시트를 분리하여 저장하기
엑셀을 사용하다 보면 엑셀 시트를 분리해서 저장해야 할 때가 있다. 최근에도 이런 경우가 발생하여 구글링 후 엑셀 시트 분리 업무를 수행하고 내친김에 다른 사람들도 사용할 수 있도록 파이썬 tkinter로 프로그램으로 만들어 보았다. Excel Sheets 분리 저장하는 프로그램(with 파이썬 Tkinter) ※ 프로그램 다운로드(네이버 MYBOX에서 공유) : ExcelSeparateSheets.zip ▶ 프래그램을 실행하면 다음과 같이 초기 화면이 보인다. 찾아보기 : 엑셀 파일이 있는 폴더를 선택한다. (프로그램이 있는 최상위 디렉터리가 열린다) 실행하기 : 프로그램 실행 버튼 상태 변경 순서 : 실행전 → 실행 중 → Sheet "OOO" 분리 저장 중 → 실행 완료 실행 결과 확인 : 엑셀 파..
goodthings4me.tistory.com
유튜브 영상 등의 URL 주소를 QR코드로 만들기
네이버 QR코드, makeQR, MUST QRcode, 무료 온라인 QRCode 생성기 등의 웹사이트에서 유튜브 영상 등의 URL을 입력하여 QR코드를 만들 수 있다. QR코드를 생성할 수 있는 사이트와 프로그램 URL 주소를 붙여넣기 한 후 "QR 코드 생성" 버튼을 클릭하면 큐알코드가 이미지로 생성되고, 다운로드도 할 수 있는 사이트 https://truedoum.com/useful/qrcode/ # 유튜브에서 동영상 URL을 복사하는 방법 유튜브에서 QR코드를 만들 동영상을 검색한다. 해당 동영상을 클릭한다. 동영상 위에서 마우스 우클릭 후 나오는 팝업창에서 “동영상 URL 복사”를 클릭하거나 영상 하단의 “공유”를 클릭하여 나온 창에서 URL를 복사한다. 아래의 웹사이트 중 하나를 선택한 후 복사..
goodthings4me.tistory.com
'코딩 연습 > 파이썬 기초(예제)' 카테고리의 다른 글
가위바위보 게임 [파이썬기초예제] (0) | 2022.04.21 |
---|---|
bmi 계산하기 - 한국인의 체질량 지수 계산 [파이썬기초예제] (0) | 2022.04.20 |
파이썬 반복문 - 김밥 주문 계산하기 [파이썬기초(예제)] (0) | 2022.04.15 |
[파이썬기초(예제)] 회원가입 아이디 및 비밀번호 생성, 유효성 체크 기능 (0) | 2022.04.15 |
파이썬 openpyxl 활용 엑셀 시트 이름 가져오기 (0) | 2022.04.13 |
댓글