목록Programming Language/Python (3)
이야기박스
요약 Subprocess에 *(Asterisk)를 사용하고 싶다면, Shell=True가 필요합니다. If shell is True, the specified command will be executed through the shell. This can be useful if you are using Python primarily for the enhanced control flow it offers over most system shells and still want convenient access to other shell features such as shell pipes, filename wildcards, environment variable expansion, and expansion of ~..
# 개요 Python3에서의 GIL(Global Interpreter Lock)이란 어떤 것인지, 그리고 이러한 환경에서 Thread, Process는 어떻게 사용해야 할지 이야기해보도록 하겠습니다. # Process & Thread [POSIX; 프로세스와 스레드]에 작성된 문서를 바탕으로 정리를 해보았습니다. Python Thread 영역은 CPython과 밀접한 연관이 있고, 프로세스와 스레드의 개념을 잘 설명해주어서 복습한다는 느낌으로 읽어보았습니다. `프로세스`란? 컴퓨터에서 연속적으로 실행되고 있는 프로그램, 즉 작업(Task)들을 일컷는 말. `스레드`란? 프로세스 내부에 실행되는 작은 작업 단위. 스레드는 프로세스의 `code`, `data`, `heap` 영역을 공유하고, `stack` ..
대용량 파일을 분할하려고 하는데, 통으로 읽어서 하려다 자꾸 OOM이 나서 스트림 처리 분할 로직을 만들어 봤습니다. 매번 자바만 하다가 파이썬을 하니 굉장히 재밌더라고요. 대학생 때로 돌아간 것 같고.. # 정책 스택 드라이버 코드를 참고해서 만들었고, 기본 동작 방식은 다음과 같습니다. 1. `block_size` 크기만큼 파일을 읽습니다. --> `block` 2. `block`에서 `marker`가 나올 때마다 해당 값들을 `rows`에 넣습니다. 3. `rows`가 특정 크기 이상되면 파일을 씁니다. # 코드 def split_file(): marker = '{delimiter}' partition_no = 0 max_row_cnt = 500000 block_size = 8192 encoding..