Python에서 Ctrl+C를 감지하는 예제 코드입니다. 윈도우와 우분투에서 동작이 됩니다. 2022. 12. 15 최초작성 프로그램을 실행하면 아무 출력없이 대기상태가 되는데 Ctrl+C를 누르면 프로그램이 종료합니다. import signal import sys # Ctrl+C 감지시 실행되는 함수입니다. def signal_handler(sig, frame): # 메시지를 출력하고 프로그램을 종료합니다. print('You pressed Ctrl+C!') sys.exit(0) # Ctrl+C를 누른것을 감지하면 signal_handler 함수를 호출하도록 합니다. signal.signal(signal.SIGINT, signal_handler) print('Press Ctrl+C') # 무한 루프로 ..
csv 파일을 일정 크기로 나누어 여러 파일로 분리하는 파이썬 예제 코드입니다. 최초작성 2023. 9. 28 다음 링크에 있는 iris 데이터셋을 가지고 진행했습니다. https://www.kaggle.com/datasets/arshid/iris-flower-dataset/ 전체 소스코드입니다. import pandas as pd import numpy as np file = 'IRIS.csv' filename = file.split('.')[0] df = pd.read_csv(file) print(df.shape) print() print(df.head()) print() n = 50 for idx,(_, sub_df) in enumerate(df.groupby(np.arange(len(df)) //..
리스트를 정해진 개수로 분할하여 딕셔너리에 저장하는 Python 예제 코드입니다. 2023.1.21 최초작성 # 리스트 크기 max_size = 18 # 나눌 원소 개수 element_size = 6 # 테스트를 위해 연속적인 숫자로 구성된 리스트 생성 temp = [i for i in range(0,max_size)] # element_size 크기의 리스트를 원소로 하는 리스트 생성. # max_size가 element_size로 나누어 떨어지지 않는 경우 마지막 원소로 element_size보다 작은 크기의 리스트가 생성됨. g_image_order_list = {} for i in range(0,max_size,element_size): g_image_order_list[i//element_siz..
Python에서 C언어의 getch 함수와 동일한 기능을 하는 함수를 사용한 예제 코드입니다. 2022. 12. 14 최초작성 getch는 엔터를 누를 필요 없이 키 하나를 누른 것을 입력으로 받습니다. 아래 예제코드는 q를 누르면 프로그램이 종료됩니다. 윈도우와 우분투에서 테스트 가능하도록 작성되었습니다. import platform if platform.system() == 'Windows': import msvcrt as getch else: import getch while True: char = getch.getch() if platform.system() == 'Windows': char = char.decode('utf-8') print(char) if char == 'q': break
logging을 사용시 출력하라고 지정한 내용외에 표준 출력이나 표준 에러로 화면에 보여지는 내용들이 파일에 저장되었으면 하는 아쉬움이 있었습니다. 찾아보니 해결한 코드가 있네요. 하지만 파일에 저장이 되는 반면 화면에는 출력이 보이지 않는 단점이 있습니다. https://stackoverflow.com/a/39215961/19664020 2022. 11. 14 최초작성 import logging import sys class StreamToLogger(object): """ Fake file-like stream object that redirects writes to a logger instance. """ def __init__(self, logger, level): self.logger = log..
함수의 리턴문에 한줄로 if문을 사용하는 예제 코드입니다. 참고 https://stackoverflow.com/a/18669843/19664020 2022. 10. 27 최초작성 def f(num): # num값이 1이면 'one'을 리턴하고 나머지 경우에는 'other'를 리턴합니다. return 'one' if num==1 else 'other' # 'one'을 출력합니다. print(f(1)) # 'other'를 출력합니다. print(f(2)) 실행 결과 one other
Python 변수 이름에 일련 번호를 부여하여 변수를 생성하는 예제 코드입니다. 2022. 10. 24 최초작성 for i in range(3): globals()[f'num_{i}'] = i print(num_0, num_1, num_2) 실행결과 0 1 2 참고 https://stackoverflow.com/a/53503041
lambda와 map을 사용하여 list 원소에 똑같은 문자열을 추가하는 Python 예제입니다. list에 저장된 경로에 동일한 경로를 추가해야 할 경우 유용합니다. 2022. 10. 23 최초작성 a = ['a', 'b', 'c'] root = './home' print(a) # ['a', 'b', 'c'] path = list(map(lambda x: root + '/' + x, a)) print(path) # ['./home/a', './home/b', './home/c']
ConfigParser를 사용하여 INI 파일을 읽고 쓰는 예제입니다. 2022. 8. 17 최초작성 2022. 10. 22 INI 파일에서 한글 깨짐 현상이 발생한 경우 아래 링크를 참고하세요. https://jsikim1.tistory.com/222 처음 실행하면 INI 파일이 존재하지 않기 때문에 새로 생성합니다. INI 파일은 다음과 같은 내용을 갖고 있습니다. 다시 실행하면 count 항목의 값을 증가시켜 저장합니다. INI 파일은 다음과 같은 내용을 갖고 있습니다. count 값이 1 증가한 것을 볼 수 있습니다. 전체 코드입니다. from configparser import ConfigParser config = ConfigParser() ret = config.read('test.ini')..
파이썬에서 실행중인 프로세스 이름과 pid를 출력하는 예제 코드입니다. 2022. 8. 6. 최초작성 from multiprocessing import Process def count(num): while num > 0: num = num - 1 print(num) print('process exit') if __name__ == '__main__': # Process를 사용하려면 꼭 적어줘야 합니다. t = Process(target=count, args=(10,)) t.start() # 실행중인 프로세스 리스트를 출력합니다. import psutil current_process = psutil.Process() children = current_process.children(recursive=True..