PYTHON
-
[ Python ] difflib 모듈 ( 문자열 비교, 유사도 )Python/Python Programming 2023. 4. 24. 11:42
difflib.SequenceMatcher ( 유사도 ) from difflib import SequenceMatcher def similar(a, b): return round(float(SequenceMatcher(None, a, b).ratio()),2) * 100 print(similar('서울시 강남구','서울시 영등포구 ')) ----------------------------------------------------------------------- 62.0 difflib.context_diff ( 문자열 목록 비교 ) samplefile_1.txt samplefile_2.txt 1 파이썬 2 python 3 iz 4 beautiful 1 파이선 2 python 3 is 4 beautifu..
-
[ Python ] Remine API 사용하기Python/Python Programming 2023. 3. 21. 14:49
Redmine Python을 이용하면 일감관리, 노트관리, 뉴스 등을 자동화하거나 다른 서비스와 연동할 수 있다. 모듈설치 pip install python-redmine 접근방법은 "User / Password"와 "API Key" 인증 2가지가 있다. API Key를 허용하는 방법은 글 하단에 표기하였다. redmine = Redmine('url', username=' ', password=' ') redmine = Redmine('url', key=' ') 신규 일감(Issue) 생성하기 from redminelib import Redmine import datetime redmine = Redmine('url', key=' ') issue = redmine.issue.create( project_..
-
[ AWS ] Python boto3를 이용하여 s3 log 압축파일(gz) DataFrame 만들기 - CloudFront LogsAWS Infra 2023. 3. 16. 12:36
AWS CloudFront, WAF 등 S3에 저장된 log들은 최종 gz 압축 형태로 보관 된다. 주기적이고, 빠르게 모니터링하고 분석하기 위해서 Python SDK를 이용하여 자동화 할 수 있는 방법을 알아본다. S3 버킷에 저장된 object 다운로드 Python boto3를 이용하여 S3에서 파일을 다운로드 한다. 일반적으로 날짜 Prefix가 들어가기 때문에 datetime 모듈을 이용하여 일괄 다운로드 받을 수 있으며, 아래에서는 단일 파일만 대상으로 테스트 해본다. CloudFront 로그가 S3에 저장되어 있고, xxxx.2023-03-15-01.xxxx.gz 라는 압축파일을 다운로드 import boto3 client = boto3.client('s3') saveFile = 'xx..
-
[ AWS ] Python Boto3를 이용한 CloudFront Invalidation (무효화)AWS Infra 2023. 1. 13. 16:57
CloudFront 콘텐츠들의 캐시 히트율을 높히기 위해 TTL을 길게 변경하고, 변경되는 컨텐츠들은 Python을 이용하여 Invalidation (무효화) 무효화 처리하는 방법을 알아본다. 아래는 테스트용인 단일 파일이지만, APIGate와 같이 활용하기 위해서는 'Items' 배열로 받아서 'Quantity' 수량을 len() 을 이용해서 처리하면 되겠다. import boto3 from time import time s3 = boto3.client('cloudfront') response = s3.create_invalidation( DistributionId='', InvalidationBatch={ 'Paths': { 'Quantity': 1, 'Items': [ '/test.jpg', ] }..
-
[ Python ] cx_Oracle을 이용한 oracle 연결Python/Python Programming 2022. 6. 27. 23:10
Installing oracle module pip install cx_Oracle Example import cx_Oracle conn = cx_Oracle.connect('userid','password','host/sid') cursor = conn.cursor() cursor.execute(' ') rows = cursor.fetchall() print(row) cursor.close() conn.close()
-
[ Zabbix ] Zabbix Problem monitoring using Python API. (파이썬 API를 이용한 Zabbix Problem 모니터링)Open Source 2020. 6. 2. 17:06
1. Create Sample Trigger (트리거 생성) 2. Python API (ZabbixAPI_py) # API # pip install ZabbixAPI_py from ZabbixAPI_py import Zabbix from datetime import datetime from datetime import timedelta # Zabbix Auth zabbix = Zabbix('host') zabbix.login('id','password') # before 10 Min tenMin = datetime.today() - timedelta(minutes=10) # get problems for x in zabbix.problem(method='get'): eventTime = datetime...
-
Python Programming Basic - Append. Regular Expression (정규식 표현식) 기호Python/Python Basic Lesson 2020. 3. 4. 15:21
* : 바로 앞에 있는 문자가 0부터 무한대로 반복될 수 있다는 의미 import re stringtup = ('apple','appppple','aple','ale') p = re.compile('ap*le') for i in stringtup: if p.search(i): print('match :', i) else: print('no match :', i) -------------------------------------------------- match : apple match : appppple match : aple match : ale + : 바로 앞에 있는 문자가 최소 1부터 무한대로 반복될 수 있다는 의미 import re stringtup = ('apple','appppple','ap..
-
Python Programming Basic - Append. 리스트 축약 (List Comprehensions)Python/Python Basic Lesson 2020. 3. 2. 20:42
리스트 객체를 이용하여 조합, 필터링 등의 추가적인 연산을 통하여 새로운 리스트 객체를 생성하는 경우, 리스트 내장은 매우 효율적이다. for in (if ) - 시퀀스 타입 객체 : 리스트, 튜플, 셋 - 아이템 : 리스트 객체의 개별 아이템 - 표현식 : 개별 을 사용하여 사상함수 형태로 새로운 리스트 객체를 생성 - if 조건식 : 조건식에 맞는 원본 리스트의 아이템을 선별하는 경우. 생략가능 # [ 0, 1, 2, 3, 4 ] 요소 가진 리스트 만들기 (일반적인 문법) lst = [] for i in range(5): lst.append(i) print(lst) [0, 1, 2, 3, 4] # List Comprehensions을 이용한 방법 lst = [ i for i in range(5) ] ..