일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Visual Studio
- LIST
- Selenium
- error
- 기타 연주
- 컨테이너
- Numpy
- 채보
- paramiko
- JSON
- SSH
- Docker
- pip
- Python
- mysql
- ubuntu
- windows forms
- OpenCV
- 오류
- Linux
- C
- 프로그래머스
- C#
- C++
- pytorch
- 핑거스타일
- pandas
- VS Code
- label
- YOLO
- Today
- Total
목록Python (115)
기계는 거짓말하지 않는다
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..
awscli를 사용 시, 이와 같은 오류를 볼 때 해결 방법이다. # 필수는 아님 python3 -m pip install --upgrade pip # 필수 pip3 install --upgrade boto3 pip3 install --upgrade awscli
pip 자체의 버전은 pip -V 또는 pip --version을 입력하면 된다. # pip 버전 21.2 이상 pip index versions {패키지 이름} # ex) pip index versions numpy # pip 버전 9.0 이상 pip install {패키지 이름}==
아래와 같은 예시 코드에서 import subprocess as sp # 실행 시킬 명령어 command = ["any command..."] proc = sp.Popen(command, stdin=sp.PIPE, stderr=sp.PIPE) while 반복 조건: # 큰 데이터 받음 data = 데이터 IN # write proc.stdin.write(data.tostring()) 반복문을 실행하다가 프로세스가 종료되는 경우가 있다. 한 가지 상황은 이미지를 데이터로 받아 FFMPEG에 raw data로 넘겨줄 때였다. FFMPEG는 stderr에 지속해서 기록하므로 버퍼가 계속 차게 된다. stderr을 사용하지 않거나, 비워주어야 한다. 비우는 방법은 write 후 stderr을 close 하거나 ..
Python의 Paramiko module로 SSH 연결 후 원격 명령어가 끝날 때까지 blocking 하는 방법의 예이다. import paramiko import time cli = paramiko.client.SSHClient() cli.set_missing_host_key_policy(paramiko.client.AutoAddPolicy()) cli.connect(hostname="1.1.1.1", username="ubuntu") stdin, stdout, stderr = cli.exec_command("sleep 3") # waiting for command stdout.channel.recv_exit_status() lines = stdout_.readlines() print(''.join(..