본문 바로가기

프로그래밍/Python79

파이썬(Python) 파일 압축 및 압축 풀기 (feat. zlib, gzip, zipfile, tarfile) 파이썬(Python)에서는 데이터 또는 파일을 압축하기 위한 다양한 내장 모듈을 제공하고 있다. 대표적으로 zlib, gzip, zipfile 그리고 tarfile이 있다. 이번 포스팅에서는 각 모듈을 이용한 압축 및 압축 풀기 방법을 알아보려고 한다. - 목차 - 1. zlib 2. gzip 3. zipfile 4. tarfile 1. zlib zlib은 문자열을 압축하거나 압축을 푸는 데 사용되는 모듈로써 이를 이용하면 사이즈가 큰 데이터의 용량을 줄여서 빠르게 전송할 수 있게 해 준다. zlib은 compress를 이용하여 압축, decompress를 이용하여 압축을 해제할 수 있다. 압축할 문자열은 인코딩이 되어 있어야 하며 압축 해제 결과는 인코딩 된 문자열이므로 디코딩을 해줘야 원래의 문자열을.. 2023. 5. 6.
파이썬(Python) fnmatch를 이용한 폴더와 파일 탐색 파이썬(Python)의 내장 모듈인 fnmatch은 파일명 또는 폴더명이 특정 패턴과 일치하는지 여부를 알려주는 모듈로써 fnmatch 단독으로 사용되진 않고 os.listdir 함수와 같이 사용한다. 이번 포스팅에서는 fnmatch을 이용하여 특정 패턴과 일치하는 파일과 폴더를 찾는 방법에 대해서 알아본다. fnmatch 사용법 여기서는 많이 사용되는 조건을 바탕으로 fnmatch 사용법을 알아본다. 1) 특정 문자열 포함 여부 a. 특정 문자로 시작하는 폴더 및 파일 찾기 : 특정 문자+' * ' 아래 코드는 test_folder 내 test로 시작하는 파일명 및 폴더를 출력한다. ## test_folder 내 test로 시작하는 파일과 폴더 target_folder = 'test_folder' fo.. 2023. 4. 24.
파이썬(Python) 파일과 폴더(디렉토리) 탐색하기 (feat. glob) 파이썬(Python)의 내장 모듈인 glob을 이용하면 파일명의 패턴을 이용하여 특정 폴더와 그 하위에 있는 파일을 찾아낼 수 있다. 이번 포스팅에서는 glob 모듈을 이용하여 특정 패턴을 갖는 파일과 폴더를 탐색하는 방법에 대해서 알아보고자 한다. glob 사용법 여기서는 많이 사용되는 조건을 바탕으로 glob 사용법을 알아본다. 1) 현재 디렉토리 내 폴더와 파일 확인하기 a. 현재 디렉토리에 있는 폴더만 확인 : **/, */ 아래 코드는 현재 폴더 내 모든 폴더를 출력한다. ## 현재 폴더 내 모든 폴더 for folder_name in glob.glob('**/'): ## 또는 glob.glob(*/) print(folder_name) b. 현재 폴더 내 폴더와 파일까지 확인 : **, * 와일.. 2023. 4. 23.
파이썬(Python) 텍스트 파일 쉽게 수정하기 (feat. fileinput) 파이썬(Python) 내장 모듈인 fileinput을 이용하면 텍스트 파일을 쉽게 수정할 수 있다. 이번 포스팅에서는 fileinput 모듈을 이용하여 텍스트 파일을 수정하는 방법을 알아보자. fileinput을 이용한 텍스트 파일 수정 먼저 아래 그림과 같은 텍스트 파일(test_01.txt)을 만들어 주었다. 이제 fileinput을 이용하여 텍스트 내용을 수정해 보자. 1) 인코딩 확인 먼저 chardet을 이용하여 텍스트 파일의 인코딩 형식을 추출한다. 왜냐하면 fileinput을 이용할 때 인코딩 에러가 나는 경우 잘못하면 텍스트 전체가 날아갈 수 있기 때문이다. 아래 코드는 텍스트 파일의 20줄까지 읽어서 인코딩 형식을 추측한다. import chardet text_file_path = './.. 2023. 4. 19.
파이썬(Python) 폴더와 파일 다루기 (feat. os, pathlib) 파이썬(Python)의 내장 모듈 os와 pathlib은 폴더(디렉토리)의 생성 및 삭제 그리고 파일의 존재 유무 등을 알 수 있는 기능을 제공한다. 폴더와 파일 삭제에 대한 내용은 여기에 포스팅해두었으니 이번 포스팅에서는 os와 pathlib에서 기존에 다루지 않았지만 많이 활용되는 기능에 대해서 알아보고자 한다. os, pathlib 사용법 os와 pathlib은 서로 공통된 기능을 많이 제공한다. 다만 os는 문자열을 통해 폴더(또는 파일)경로를 다루지만 pathlib은 Path 객체를 통해 경로를 다루는 차이점이 있다. 여기서 다루는 내용을 요약하면 다음과 같다. 이제 각각의 방법을 각각 알아보자. 1) 현재 폴더(디렉토리) 확인하기 현재 폴더(디렉토리)란 코드를 실행하는 파일을 포함하고 있는 폴.. 2023. 4. 14.
파이썬(Python) statistics 모듈을 이용한 통계량 계산하기 파이썬(Python)에서 statistics 모듈을 사용하면 여러 가지 통계량을 계산할 수 있다. 이번 포스팅에서는 statistics 모듈을 이용하여 어떤 것들을 할 수 있는지 알아보자. statistics 모듈 statistics 모듈은 파이썬 버전이 변함에 따라서 새로운 기능이 추가되었다. 이 포스팅은 파이썬 버전 3.11.2를 기준으로 작성한 것이다. 1) 통계량 계산하기 아래 코드는 statistics 모듈을 이용하여 계산할 수 있는 통계량들이다. statistics가 제공하는 더 자세한 통계량들을 알고 싶다면 statistics 개발 문서를 참고하기 바란다. import statistics as st a = [1,2,4,5,5,6] b = [3,6,6,8,9,10] print() print('.. 2023. 3. 25.
파이썬(Python) time 모듈을 이용하여 시간 정보 가져오기 파이썬(Python) 내장 모듈인 time 모듈을 이용하면 현재 시간, 프로그램 수행 시간과 같은 시간 정보를 알아낼 수 있다. 이번 포스팅에서는 time 모듈을 이용하여 할 수 있는 것들에 대해서 알아본다. time 모듈 1) GMT 기준 현재 시간, 타임존, 로컬 시차 time 모듈에서 time 함수는 1970년 1월 1일 0시 0분 0초에서 시작하여 GMT 기준으로 현재 시간을 초단위로 나타낸다. tzname 변수는 타임존을 알려주고 timezone 변수는 로컬 타임 즉, 대한민국과 GMT 기준과의 시차를 초단위로 알려준다. from time import time, tzname, timezone print(time()) ## gmt 기준 print(tzname) ## 타임존 이름 print(time.. 2023. 3. 22.
[병렬 프로그래밍] 5. multiprocessing 모듈을 이용하여 여러 인자를 갖는 함수 병렬 처리하기 (feat. starmap) 파이썬(Python)에서 병렬 프로그래밍을 위한 multiprocessing 모듈에는 여러 인자를 갖는 함수를 처리하기 위한 기능을 제공한다. Pool 객체의 starmap를 이용하면 여러 인자를 갖는 함수를 병렬 처리 할 수 있다. 이번 포스팅에서는 starmap의 사용법을 알아보자. 여러 인자를 갖는 함수 병렬 처리 starmap은 첫 번째 인자로 작업 함수를 전달하고 두 번째 인자에 작업 함수 인자를 리스트에 담으면 된다. starmap( function, [ ( x1, y1, z1), ( x2, y2, z2 ), . . . ] 아래 코드는 일차 함수값을 계산하는 do_job에서 첫 번째 인자를 변하고 두 번째, 세 번째 인자를 같은 값으로 고정하여 결과값을 리스트에 담는다. from multipr.. 2023. 3. 22.
파이썬(Python) logging 모듈을 이용한 로그(Log) 남기기 파이썬(Python)에서는 logging 모듈을 이용하여 특정 상황에서 로그(Log)를 출력하거나 파일로 남기는 등의 작업을 수행할 수 있다. 이번 포스팅에서는 logging 모듈을 이용하여 로그 남기는 방법에 대해서 알아본다. logging 모듈 사용법 먼저 logging 모듈 사용법을 단계적으로 알아보고 응용 사례를 살펴보자. 1) Logger 클래스 생성 : getLogger logging 모듈에서 로그를 남기기 위한 첫 번째 단계는 Logger 클래스를 생성하는 것이다. 이는 getLogger를 이용하면 된다. 이때 name 인자에 원하는 Logger 이름을 지정한다. import logging logger = logging.getLogger(name='MyLog') logger를 살펴보면 다음과.. 2023. 3. 21.
파이썬(Python) 달력 다루기 (feat. calendar) 파이썬(Python)에서는 달력을 다루기 위한 calendar 모듈이 있다. 이번 포스팅에서는 calendar 모듈과 관련하여 실제로 많이 쓰일 법한 것들을 알아보고자 한다. calendar 모듈 1) 달력 출력 : calendar, Calendar, TextCalendar a. 특정 연도의 달력 출력 특정 연도의 달력을 출력하려면 calendar 함수에 보고 싶은 연도를 넣어주면 된다. import calendar print(calendar.calendar(2022)) 위 코드를 실행하면 월요일을 주의 시작일로 한 달력이 출력되는 것을 알 수 있다. 2022 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr S.. 2023. 3. 18.

맨 위로