일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- label
- C++
- OpenCV
- paramiko
- YOLO
- 컨테이너
- error
- Selenium
- C
- Visual Studio
- Numpy
- Docker
- JSON
- pytorch
- LIST
- 채보
- pandas
- 프로그래머스
- Python
- SSH
- 핑거스타일
- pip
- 기타 연주
- windows forms
- 오류
- mysql
- VS Code
- ubuntu
- C#
- Linux
- Today
- Total
목록Python (106)
기계는 거짓말하지 않는다
파이썬의 threading 모듈에서 thread.daemon 속성을 True로 설정하면 해당 쓰레드가 데몬(daemon) 쓰레드로 표시되도록 한다. 데몬 쓰레드는 메인 쓰레드가 종료되면 함께 종료되는 쓰레드이다. 기본적으로 thread.daemon 속성은 False로 설정된다. 기본적으로 생성된 쓰레드는 데몬 쓰레드가 아니다. 메인 쓰레드가 종료되어도 데몬이 아닌 쓰레드는 실행을 계속한다. thread.daemon을 True로 설정하면 해당 쓰레드가 메인 쓰레드와 함께 종료되도록 설정되고, 백그라운드에서 동작하는 작업 등을 수행하는 쓰레드를 만들 때 유용하다. import threading import time def daemon_thread(): while True: print("Running daem..
pytube로 youtube 영상을 다운로드하는 예제 코드이다. 다운로드 시 프로그레스바가 출력된다. from pytube import YouTube import sys def progress_function(chunk, file_handle, bytes_remaining): global filesize current = ((filesize - bytes_remaining)/filesize) percent = ('{0:.1f}').format(current*100) progress = int(50*current) status = '█' * progress + '-' * (50 - progress) sys.stdout.write(' ↳ |{bar}| {percent}%\r'.format(bar=status..
Python에서 stdout이 JSON 형식의 문자열이거나 문자열 내부에 JSON 문자열이 포함되어 있을 경우 파싱 하는 함수이다. 여러 케이스에 대하여 검증되지는 않았다. import json def extract_json_strings(input_string): json_strings = [] start_brace_index = -1 end_brace_index = -1 open_brace_count = 0 close_brace_count = 0 for i, char_ in enumerate(input_string): if char_ == '{': open_brace_count += 1 if open_brace_count == 1: start_brace_index = i if char_ == '}' ..
Python에서 """로 선언된 여러 줄 문자열의 각 라인 최소 indent 만큼 제거하고 출력하는 방법이다. 각 라인의 맨 앞 indent 중 최소를 찾아 앞으로 붙여 정렬한다. def adjust_indent(text: str) -> str: lines = text.split('\n') # 각 라인에서 공백 제외 부분의 길이를 찾아 최소 길이 계산 min_indent = min(len(line) - len(line.lstrip()) for line in lines if line.strip()) # 각 라인을 최소 indent만큼 제거하고 출력 adjusted_lines = [line[min_indent:] if line.strip() else line for line in lines] return '..
람다 함수를 사용하여 콜백 함수를 정의하고 매개변수를 할당할 수 있다. 람다 함수는 간단한 함수를 한 줄로 정의할 때 유용하게 사용된다. def temp_function(A, B, C, D): print(A, B, C, D) # 매개변수 A, C 미리 할당 후 B, D를 이후에 할당하도록 temp_function_with_param = lambda _B, _D: temp_function("A", _B, "C", _D)\ # 나머지 매개변수 B, D 할당 temp_function_with_param("PARAM B", "PARAM D")
파이썬에서 언더스코어 (_)로 시작하는 변수명과 일반적인 변수명의 차이는 주로 관례(convention)와 의미상 구분이다. 또한 다른 스크립트 파일에서 참조시에 언더스코어 변수명은 차이가 있다. 언더스코어로 시작하는 변수명 (_value) 관례적으로 언더스코어(_)로 시작하는 변수는 보통 '내부적으로 사용되지만 무시될 수 있다'라는 의미이다. 예를 들어, _value와 같이 언더스코어로 시작하는 변수는 일반적으로 사용자가 주의를 기울이지 않아도 되는 임시 변수, 또는 내부 구현에서 사용되는 변수일 수 있다. 다른 스크립트 파일에서 참조 시 참조되지 않는다. # 언더 스코어로 시작하는 변수 (내부적으로 사용되는 변수 또는 임시 변수) # 다른 스크립트 파일에서 참조할 수 없다 _value = 10 # 언..
Python에서 pymysql connection 연결 후 프로세스가 오래 실행되고 있을 경우, DB 쿼리 실행 시, lost connection 오류를 보는 경우가 있다. pymysql에서 연결이 끊어졌을 경우 재연결을 시도하는 방법이다. import pymysql # 연결 설정 connection = pymysql.connect( host='your_mysql_host', user='your_mysql_user', password='your_mysql_password', database='your_mysql_database', ) def insert_db(query: str): # DB 쿼리 작업 전 확인하고 재연결을 시도해야한다. # 연결 확인 및 재연결 시도 connection.ping(recon..