반응형 PYTHON135 Python - 한 시간(time) 이상 경과시 실행하기 프로그램을 하다보면 시간 관련된 코드를 자주 작성해야 한다. 최근에 불규칙하게 실행된다는 코드 기준으로 1시간이상 경과한 기준으로 코드를 작성한다면, 다음과 같은 로직이다. 1. 마지막 실행시간 기록 2. 시간이 경과했는지 확인 3. 다시 신규 실행시간 기록 import time last_execution_time = time.time() while True: current_time = time.time() # 마지막 실행 시간으로부터 1시간 이상 경과한 경우 실행합니다. if current_time - last_execution_time >= 3600: # 원하는 작업을 여기에 작성합니다. print("한 시간이 지났습니다!") # 현재 시간을 마지막 실행 시간으로 업데이트합니다. last_execut.. 2023. 5. 31. Python - Dict compare 멀티 키 비교(Multi key) 및 효율 Python에서는 Dict구조를 활용하는데 Key가 존재하는지를 체크하는 경우가 자주 발생한다. Key with Value 구조에서 key의 경우 in 을 통해 해당 키가 있는지 확인할 수 있다. asecurity = {'a' : 1, 'b' : 2, 'c' :3} if 'a' in asecurity: # True, code here pass 만약 확인해야 하는 키가 많은 경우에는 코드 가독성이 떨어져 오류를 범할 수 있기 때문에, 이때 몇가지 대안으로 비교 할 수 있는 코드에 대해서 알아보도록 하겠다. 1 in and -> True, False 가장 많이 사용하는 방식으로 해당 키가 있는지 and를 이용하여 추가로 붙일 수 있다. 다안이라기 보다는 비교 키가 많지 않은 경우에 추천된다. asecurit.. 2023. 5. 10. Python - Day 비교, 같은 날짜인지 모든 프로그래밍을 하다보면, 날짜 비교는 정말 자주 사용하게 된다. 날짜 기반으로 오래된 데이터를 삭제하거나 실행등 아무래도 날짜 기준으로 보여주거나 업데이트를 해야 하는 상황이 많다보니 그런것 같다. 특히 필자는 Day 기준으로 특정 날짜가 넘어가면, 업데이트하는 코드를 작성하는데, 하루에 한번 실행하는 코드를 작성하고자 할때 유용한 방법이다. Python 에서는 datetime에 date를 통해서 날짜 정보를 가져올 수 있도록 구성되어 있다. 이를 통해 기존 날짜와 비교하는 구조로 개발을 진행할 수 있다. 다음 코드는 날짜를 비교하는 간단한 예제이다. from datetime import datetime # 2022년 1월 3일 13시 45분 44초 old_day = datetime(2022, 1, .. 2023. 5. 8. Python - List 전역 변수 Error 해결 local variable '' referenced before assignment 파이썬의 경우 전역 변수를 손쉽게 선언하여 사용할 수 있는데, 값을 읽을 수 있다. 그런데 아래와 같이 전역 변수를 값을 읽는데에는 문제가 없지만, 해당 값을 추가(업데이트)하게 되면, 지역 변수가 아니라면서 오류가 발생하게 된다. 아마도 이는 Python 버전 업을 하면 해결될 문제로 보이지만, 당장은 다음과 같지 수정이 가능하다. 문제 코드 HELLO = [] def hello(): if len(HELLO) == 0: HELLO = [] print(HELLO) else: print("None") hello() 해결 global 을 선언해서 전역 변수를 사용할 것이라는 것을 먼저 알려주어야 한다. HELLO = [] def hello(): global HELLO if len(HELLO) == 0: HE.. 2023. 5. 8. Python - URL 인코딩/디코딩(encoded/decoded) 진행 웹브라우저는 안전하게 URL을 이용할 수 있도록, 몇가지 조건을 서로 약속하였는데, 그중 URL 인코딩에 대해서 얘기해 보자. URL 인코딩 이란? 인터넷에서 정보를 전송할 때, URL에 사용되는 문자 이외의 문자를 안전하게 전송하기 위해 사용된다. ASCII 문자(영문자) 이외의 문자를 인코딩하고, 브라우저에서 이를 처리할 수 있도록 하는 방식이다. URL에서 사용되는 특수 문자들은 예약된 문자(reserved character)라고 부르는데, 이러한 예약된 문자들은 URL 인코딩을 통해 안전하게 전송할 수 있다. 예를 들어, URL에서 사용되는 공백 문자는 "%20"으로 인코딩된다. 그리고 받는 측에서도 동일한 방식으로 풀어서 보기 때문에 안전하게 이용이 가능하다.URL 정보를 입력할 때 특수 기호 .. 2023. 4. 26. Python - KVStore requests 로 호출 관리 Splunk의 KVStore는 REST API로 관리할 수 있다. Python용도로 제공되는 라이브러리도 있지만, Splunk의 버전별 대응을 하거나, 커스텀 기능을 넣기에는 부족하기 때문에, 직접 requests를 통해 개발하는 것이 효율적이다. 아래 코드는 Splunk 9.0.4 버전에서 정상 동작하는 코드로 사용자에 맞게 변경해서 사용할 수 있는 기본 구조이다. 호출은 KVStore 생성, 검색, 그리고 데이터 입력과 업데이트, 삭제가 가능하다. import json import requests ADMIN_USERNAME = 'admin' ADMIN_PASSWORD = 'password' APP_NAME = 'my_app' HEADERS = {'Content-Type': 'application/js.. 2023. 4. 17. Python - 문자열 위치 찾기 (find, rfind) Python을 코드하다 보면, 특정 끝나는 시점에 문자열을 찾아서 처리해야 하는 경우가 발생한다. 이때 즐겨 사용할 수 있는 함수가 바로 find, rfind이다. 결론 부터 설명하면 find는 왼쪽부터, rfind는 오른쪽에서 가장 첫번째 일치하는 인덱스 값을 가져오게 된다. 코드로 구현한다면 다음과 같다. prompt = 'allmnet\n hello\n world' last_period = prompt.rfind('\n') if last_period != -1: prompt = prompt[:last_period] print(last_period) print(prompt) 실행해보면 마지막,\n world가 제거 된 것을 알 수 있다. 즉 \n이 들어간 시작 인덱스 값을 가져오게 된다. 이제 반대로.. 2023. 4. 13. Python - OpenAI 최대 요청 초과 오류 해결 최근 OpenAI 테스트를 진행하면서 자주 만난 메세지가 바로 ("This model's maximum context length is 4097 tokens, however you requested 6156 tokens (2059 in your prompt; 4097 for the completion). Please reduce your prompt; or completion length." 아무래도 한번에 처리할 수 있는 사용량을 제한하고 있는 것인데... 이를 해결하기 위해 요청하는 글자수를 제한하고, 전체 길이에 맞게 잘라내야 한다. 첫번째 방안이다. 1. 여러번 나눠서 요청하기 """ OpenAI Make Summary""" max_context_length = 4096 # 최대 문맥 길이 max.. 2023. 4. 12. Splunk - KV Store 데이터 저장 및 수정하기 KV Store는 Splunk에서 제공하는 기능이다. KV Store 용도는 데이터베이스 처럼 입력 저장 수정등, 쉽게 활용할 수 있어서, Splunk를 사용하고 있다면, 간편하게 사용하기 좋은 저장소라고 할 수 있다. 그럼 가장 간단하게 데이터를 저장하고 수정하는 Python 코드를 작성해보도록 하자. 여기에서는 Splunk에서 제공하는 라이브러리를 사용할 예정이며 코드는 다음과 같다. import splunklib.client as client # Splunk 인증 정보 host = "localhost" port = 8089 username = "admin" password = "your_password" # Splunk SDK 객체 생성 service = client.connect( host=hos.. 2023. 4. 11. 이전 1 2 3 4 ··· 15 다음