PYTHON
-
-
Python: Popen 백그라운드 실행 및 로그 읽기 (linux)컴퓨터/파이썬 2020. 12. 22. 09:22
subprocess subprocess — Subprocess management — Python 3.9.1 문서 subprocess — Subprocess management Source code: Lib/subprocess.py The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and docs.python.org 1. 할 것 popen으로 서버 프로그램을 실행해서 터미널을 닫아도 종료가 안되게 만들고 (이 글에선, Apache..
-
Python: Kafka + 대학교 공지 Parser + Slack API + MySQL컴퓨터/파이썬 2020. 12. 15. 15:00
결과물 1. 만들 것 사실, 하나의 파일로, parsing 하고, slack api에 전달하고, mySQL이나 json으로 저장해도 되지만 (Kafka Connect Sink로 해도 되고 방법은 많다.) 공부해본 것을 사용하기 위해, 짬뽕 Apache Kafka Producer에서 대학교 공지 데이터 불러오기 MySQL로 공지 저장과 동시에 Consumer로 데이터 전달하기 Apache Kafka Consumer에서 Slack API를 이용하여 댓글 남기기 (카카오톡 챗봇이 수락이 되면 카카오톡 챗봇으로 업데이트 예정) (서버 부담을 덜기 위해, 1시간 간격으로 공지 파싱) 2. 준비물 Apache Kafka Apache Kafka Apache Kafka: A Distributed Streaming Pl..
-
Python MySQL: with OPEN_DB 만들기컴퓨터/MySQL 2020. 12. 15. 10:35
commit은 항상 하고, cursor를 주로 사용하기 때문에 알아서 close 시키는 with문을 만들고 싶었다. custom with문 만들기 import os from contextlib import contextmanager @contextmanager def OPEN_DB(): # connect to my local MySQL instance using connection string db = mysql.connector.connect( host="localhost", user=os.environ["MYSQL_USER"], password=os.environ["MYSQL_PASSWORD"], database="mydb", charset="utf8", ) cursor = db.cursor(buff..
-
Python MySQL: 중복 row 인지 확인하기컴퓨터/MySQL 2020. 12. 15. 10:30
위와 같이 id, title, ...로 이루어진 row들이 있는 데이터베이스가 있다. id는 primary key이고, id를 INSERT하기 전에 중복인지 확인하고 싶었다. db 초기화 import mysql.connector db = mysql.connector.connect( host="localhost", user=os.environ["MYSQL_USER"], password=os.environ["MYSQL_PASSWORD"], database="mydb", charset="utf8", ) cursor = db.cursor(buffered=True) 중복 row 체크 왜 빠를까? 만약 id가 기본 키라면 인덱싱이 된다. 인덱스 스캔은 테이블 스캔보다 빠르니까 크기에 관계없이 동일한 성능을 보여준다..
-
Python: MySQL 사용하기컴퓨터/MySQL 2020. 12. 14. 16:00
MySQL MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. www.mysql.com 할 것 MySQL 서버 실행 Python용 MySQL connector db 만들고 간단하게 table CREATE, SELECT 설치 MySQL 다운로드 dev.mysql.com/downloads/mysql/ Windows 10 my.ini 경로: C:\ProgramData\..
-
Python rich: Console 출력 색깔, 꾸미기컴퓨터/파이썬 2020. 12. 13. 13:10
rich rich Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal pypi.org 1. 소개 rich-console은 python으로 powershell이나 cmd 출력 창을 꾸미는 라이브러리이다. 설치 pip install rich 2. 예제 API 문서 링크: @링크 dictionary, 함수 local value 출력 from rich.console import Console data = [ { "jsonrpc": "2.0", "method": "sum", "params": [None, 1, 2, 4, False, True], "id": "1", }, {"jsonrpc": "2..
-
Python: with문 만들어 사용하기컴퓨터/파이썬 2020. 12. 11. 10:13
with contextlib — Utilities for with-statement contexts — Python 3.9.1 documentation Most context managers are written in a way that means they can only be used effectively in a with statement once. These single use context managers must be created afresh each time they’re used - attempting to use them a second time will trigger an excep docs.python.org 1. with문 파이썬에서는 with문을 이용해서 외부 리소스를 간편히 이용..