목차
- 파이썬 os.exit, os.mkdir 디렉토리 존재 확인후 생성 예제 이전 포스팅 참고 학습
- 파이썬 os.makedirs 하위 디렉토리 포함 생성 예제 이전 포스팅 참고 학습
- 파이썬 zlib로 json 데이터 압축 예제 이전 포스팅 참고 학습
- 파이썬 시그널 수신 함수 구현 예제(SIG_INT)
- 파이썬 SIG_CHILD 시그널 받을 때 메세지 출력하고 종료 예제
파이썬 os.exist, os.mkdir 디렉토리 존재 확인후 생성 예제 이전 포스팅 참고 학습
이전 포스팅에서는 파이썬의 os 모듈을 사용하여 디렉토리를 생성하는 예제를 알아보았습니다. os.mkdir() 함수를 사용하여 디렉토리를 생성하며, os 모듈로 디렉토리가 이미 생성되어 존재하는지 확인하는 예제도 포함되어있습니다. 따라서 현재 디렉토리가 있는지 확인하여 없으면 os.mkdir로 새롭게 디렉토리 생성하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.31 - [Python] - [Python] 파이썬 디렉토리 존재 확인 후 생성 예제(os.exist, os.mkdir)
파이썬 os.makedirs 하위 디렉토리 포함 생성 예제 이전 포스팅 참고 학습
다음으로 os.makedirs() 함수를 사용하여 하위 디렉토리를 포함하여 디렉토리를 생성하는 예제를 이전 포스팅에서 알아보았습니다. os.mkdir 함수는 단일 디렉토리 생성 함수라면 os.makedirs는 하위 디렉토리까지 일괄 포함하여 생성하는 함수입니다. 이 함수를 사용하면 지정한 경로에 모든 중간 디렉토리를 생성할 수 있습니다. 따라서 하위 디렉토리 포함 생성이 필요하시다면 아래 링크를 참고해주세요.
2023.08.31 - [Python] - [Python] 파이썬 하위 디렉토리 포함 생성 예제(os.makedirs)
파이썬 zlib로 json 데이터 압축 예제 이전 포스팅 참고 학습
마지막으로 파이썬의 zlib 모듈을 사용하여 JSON 데이터를 압축하는 방법을 이전 포스팅에서 알아보았습니다. 파이썬 코드에서 JSON 데이터를 생성하고, zlib.compress() 함수를 사용하여 데이터를 압축하고 zlib.decompress() 함수를 사용하여 데이터를 해제합니다. 우리가 흔히 파일만 압축하고 해제하는 줄 알지만, 실제로는 이러한 메모리상에 존재하는 데이터도 압축이 가능합니다. 따라서 zlib 모듈로 json 데이터 압축이 필요하시다면 아래 링크를 참고해주세요.
2023.08.30 - [Python] - [Python] 파이썬 json 데이터 압축 예제(zlib, json)
파이썬 시그널 수신 함수 구현 예제(SIG_INT)
아래는 파이썬에서 시그널을 수신하여 특정 동작을 수행하는 함수를 구현하는 예제입니다. signal 모듈을 사용하여 시그널 핸들러 함수를 등록하고, 시그널을 수신하면 핸들러 함수가 호출됩니다. 본 예제에서는 SIG_INT를 받았을 때 대응하는 예제입니다. Ctrl + C를 누르면 호출됩니다.
import signal
import time
def sig_handler(signum, frame):
print(f"시그널 {signum}을 수신하였습니다.")
# SIGINT 시그널(일반적으로 Ctrl+C)을 핸들링
signal.signal(signal.SIGINT, sig_handler)
while True:
time.sleep(1)
파이썬 SIG_CHILD 시그널 받을 때 메세지 출력하고 종료 예제
아래는 파이썬에서 SIG_CHILD 시그널을 수신할 때 메시지를 출력하고 프로세스를 종료하는 예제입니다. 자식 프로세스를 생성하고, os.fork() 함수를 사용하여 자식 프로세스와 부모 프로세스를 분리하고, signal 모듈을 사용하여 SIG_CHILD 시그널을 핸들링합니다. 자식 프로세스가 종료되면 시그널 핸들러 함수가 호출되어 메시지를 출력하고 부모 프로세스도 종료됩니다.
import os
import signal
def sigchld_handler(signum, frame):
print(f"SIGCHLD 시그널을 수신하였습니다. 자식 프로세스가 종료되었습니다.")
os._exit(0) # 프로세스 종료
# SIGCHLD 시그널 핸들링
signal.signal(signal.SIGCHLD, sigchld_handler)
# 자식 프로세스 생성 및 종료
pid = os.fork()
if pid == 0: # 자식 프로세스
print("자식 프로세스가 동작 중입니다.")
os._exit(0) # 자식 프로세스 종료
else: # 부모 프로세스
os.wait() # 자식 프로세스 종료 대기