[Python] try, except 문에서 Exception이 여러 개일 경우
·
개발 (Development)/Python
Exception을 처리하는 코드에 중복된 동작이 많아서 단순화가 필요했다. 따라서 아래의 과정을 통해 단순화했다. 기존 코드 # 기존 코드 try: # 예외 발생 가능한 코드 영역 print("test") except socket.error as e: send_kafka_message(self, empty_dict) self.logger.error(f":: Socket error occurred: {e}") self.close_socket() self.initialize_socket() return None, meta except Exception as e: send_kafka_message(self, empty_dict) self.logger.error(f":: An error occurred: {s..
[Python] List Comprehension
·
개발 (Development)/Python
Python에서 리스트를 순회하며 값을 치환할 때 for 문을 사용해도 되지만, 아래처럼 List Comprehension으로 For문을 단순화 할 수 있다. 아래는 리스트를 순회하며 True일 경우 1, False일 경우 0으로 치환하는 코드를 For문으로 작성한 경우이다. # 기존 코드 coil_bit_list = list(coils.bits) for i in range(0,len(coil_bit_list)): if coil_bit_list[i]: coil_bit_list=1 else: coil_bit_list=0 아래는 List Comprehension을 사용하여 위의 코드를 단순화한 결과이다. # 수정 코드 coil_bit_list = list(coils.bits) result_list = [1 ..
[Python] 리눅스 환경에서 윈도우 환경으로 파일 저장 (SMB 프로토콜)
·
개발 (Development)/Python
리눅스 환경에서 윈도우 환경으로 파일 혹은 디렉토리와 하위 디렉토리, 파일들을 모두 전송하는 코드이다. 파이썬의 pysmb 모듈을 사용하며 Connection 정보(IP 주소, 사용자 이름, 패스워드 등)를 명확히 입력해주어야 한다. from typing import Tuple, Optional import json import os from smb.SMBConnection import SMBConnection DataGram = Optional[bytes] MetaDataGram = Optional[bytes] # 디렉토리 생성 함수 def create_directory_recursive(self, conn, target_folder, destination_path): # 경로에서 폴더 구조 추출 fo..
[Python] 실행 시간 측정
·
개발 (Development)/Python
실행하고자 하는 코드 라인의 전, 후로 변수에 각각 시간을 담고, 차이를 구하면 실행 시간을 구할 수 있다. 결과값의 단위는 초(second) 이다. import time start_time = time.time() try: # 시간 측정 대상 코드 print("test") except Exception as e: self.logger.info(f"Python task exception : {str(e)}") end_time = time.time() execution_time = end_time - start_time print("Execution time:", execution_time, "seconds")
[Python] Zip
·
개발 (Development)/Python
파이썬의 내장함수 zip()에 대해 알아보려고 한다.1. zip() 기본 문법zip() 함수는 여러 개의 순회 가능한(iterable) 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플의 형태로 차례로 접근할 수 있는 반복자(iterator)를 반환한다.>>> numbers = [1, 2, 3]>>> letters = ["A", "B", "C"]>>> for pair in zip(numbers, letters):... print(pair)...(1, 'A')(2, 'B')(3, 'C')위 코드를 보면 numbers 리스트와 letters 리스트를 zip() 함수에 인자로 넘겨서 호출 후에 for 문으로 zip() 함수의 반환값을 대상으로 루프를 돌면서 튜플을 차례로 출력하고 있다. zip()..