Developer 19

python :: 파이썬 코드 실행 시간(elapsed time) 측정하기

파이썬 스크립트 내 특정 코드 실행 시간을 측정할 때 datetime 라이브러리를 사용하면 된다. from datetime import datetime start_time = datetime.now() # # 실행시간 측정을 원하는 코드 입력 # end_time = datetime.now() elapsed_time = end_time - start_time 이렇게 작성하고 실행시키면, 0:00:37.615328 이런 형태의 결과가 출력된다. 타입이 무엇인고 하니, 라고 한다. 이는 int 타입과 연산이 불가능하다. total_elapsed_time = 0 total_elapsed_time += elapsed_time # TypeError: unsupported operand type(s) for +=: ..

:: python 2021.11.14

python :: 파이썬 스크립트로 리눅스 명령어(command) 실행하기

리눅스 shell command 를 실행하는 파이썬 스크립트 작성 시 사용하는 라이브러리 두 가지가 있다. 1. os import os os.system('command') 위와 같이 간단하게 작성하면 실제 커맨드가 리눅스 서버에서 잘 실행된다. 하지만 실행 결과 내용물을 받아오는 건 잘 안된다. result = os.system('command') # 0 result 에 찍어보려 해봤자 int 형 숫자를 반환할 뿐이었다. (아마도 실행 결과코드일 것 같다. 0 은 커맨드 실행 성공 코드) 2. subprocess 커맨드 실행 결과 값을 받아오고 싶다면 subprocess 를 사용하는 게 낫다. import subprocess result = subprocess.check_output('command',..

:: python 2021.11.10

python :: 파이썬 zfill 로 문자열, 숫자 앞에 0 붙이기 (01, 002)

문자열이나 숫자 앞에 0을 붙여서 출력하고 싶을 때 (ex. 1 대신 '01', 2 대신 '002') 파이썬에서는 zfill 을 사용한다. # zfill(k) => 문자열 길이가 k가 될 때까지 0으로 채운다. "1".zfill(2) # "01" "2".zfill(3) # "002" 위와 같이 사용하면 되는데 여기서 중요한 점은 문자열(string) 에 사용한다는 점이다. 숫자 a는 str(a) 으로 문자열 변환 후 zfill 을 사용해야 한다. 숫자가 아닌 다른 문자열 앞에도 같은 방법으로 '0'을 붙일 수 있다. 위 내용을 활용하여 0~99 까지의 숫자를 00, 01, ..., 99 로 나타낸 리스트를 만들면 다음과 같다. aa = [str(i).zfill(2) for i in range(100)] ..

:: python 2021.06.30

python :: 파이썬 딕셔너리(dictionary) <-> json 변환하기, 딕셔너리 출력 포맷 '(홑따옴표) 대신 "(쌍따옴표) 로 나타내기

파이썬에서 REST api 요청 및 응답 처리를 위해 dictionary json 변환을 자주 한다. 이 때 json 라이브러리를 이용하면 간단히 변환할 수 있다. 1. json -> dictionary import json data = json.loads(json_data) # json_data: json 형식 데이터 2. dictionary -> json import json data = json.dumps(dic) # dic: dictionary 형식 data 2번의 경우 파이썬 딕셔너리의 포맷을 '(홑따옴표) 대신 "(쌍따옴표)로 변경할 때도 사용할 수 있다. import json dic = {'key1': 'value1', 'key2': 'value2'} print(json.dumps(dic))..

:: python 2021.06.29

python :: 파이썬 logging 활용하여 일단위 로그 파일 생성하기 (feat. 로깅이란)

개발을 하다 보면 에러가 자주 발생한다. (내가 짠 코드가 한 번에 잘 실행되면 불안할 정도..) 이 때, 에러의 원인을 찾기 위해 우리는 실시간으로 '로그'를 찍는다. (logging) 혹은 잘 돌고 있는지 확인하기 위해 찍기도 한다. 그런데 이 로그들을 파일로 기록해야 할 때가 있다. - 로그량이 너무 많아서 확인이 어려울 때 - 매 시간 로그를 들여다보기 어려울 때 (ex. 프로젝트가 운영 단계에 접어들어 24시간 내내 돌기 시작한 경우) 이럴 때 'logging' 을 이용하여 로그를 파일로 남겨 나중에 천천히 확인할 수 있다. 1. Logger 선언, 출력 형식 지정 import logging logger = logging.getLogger(__name__) logger.setLevel(loggi..

:: python 2021.06.28

python :: 파이썬 텍스트 파일 내 특정 단어 치환(replace)하기

파일 내 특정 단어를 다른 단어로 치환할 때 파이썬에서는 replace 를 사용한다. def replace_in_file(file_path, old_str, new_str): # 파일 읽어들이기 fr = open(file_path, 'r') lines = fr.readlines() fr.close() # old_str -> new_str 치환 fw = open(file_path, 'w') for line in lines: fw.write(line.replace(old_str, new_str)) fw.close() # 호출: file1.txt 파일에서 comma(,) 없애기 replace_in_file("C:\\test\\file1.txt", ",", "") ** 'r'(read) 모드로 파일을 읽어들인 ..

:: python 2021.06.23

python :: 파이썬 파일 복사 shutil.copy 속도 빠르게 향상시키기

파이썬에서 파일을 복사할 때 shutil 라이브러리의 copy, copyfile 등의 함수를 많이 사용한다. 그런데 파일 복사 속도가 꽤 느린 편이다^.^; shutil 라이브러리 파일에서 copy 함수들을 보면 궁극적으로 copyfileobj 함수를 호출하게 되어 있다. def copyfileobj(fsrc, fdst, length=16*1024): """copy data from file-like object fsrc to file-like object fdst""" while 1: buf = fsrc.read(length) if not buf: break fdst.write(buf) copyfileobj 함수는 이렇게 정의되어있다. 주목해야 할 부분은 length=16*1024 즉, 파일 전송 시 ..

:: python 2021.06.17

python :: 파이썬 파일/폴더 복사 shutil copy, copy2, copyfile, copytree

파이썬 shutil 라이브러리에는 파일/폴더 복사와 관련된 여러 함수가 있다. copy, copy2, copyfile, copytree (copy2 라니.. 공식 라이브러리인데 너무 대충 만든거 아닌지ㅋㅋㅋ) 각각의 기능을 살펴보면 함수명 기능 사용방법 copy 파일을 복사한다 shutil.copy(src 파일 경로, dest 파일(or 폴더) 경로) * dest 에 폴더 경로를 지정할 경우 src 파일명과 같은 파일 생성 copy2 파일을 복사한다 shutil.copy2(src 파일 경로, dest 파일(or 폴더) 경로) * dest 에 폴더 경로를 지정할 경우 src 파일명과 같은 파일 생성 copyfile 파일을 복사한다 shutil.copyfile(src 파일 경로, dest 파일 경로) cop..

:: python 2021.06.16

python :: 파이썬 zipfile 로 파일 압축하기(하위폴더 포함/미포함) & 압축 해제하기

파이썬에서 파일 압축 & 압축 해제는 zipfile 라이브러리를 사용한다. C:\test └ directory1 └ file4.txt └ file1.txt └ file2.txt └ file3.txt 위 구조에서 C:\test 아래에 있는 txt 파일들을 압축해보기로 한다. 이 때, test 폴더 안의 txt 파일만 압축하려면 os.listdir 을, test 폴더 내 모든 하위폴더 아래에 있는 txt 파일을 다 압축하려면 os.walk 를 사용한다. * 참고: https://toramko.tistory.com/2 python * os.listdir과 os.walk (파이썬 특정 경로 내 디렉토리와 파일 검색) 다음과 같이 폴더와 파일을 생성해두었다. C:\test └ directory1 └ file4.t..

:: python 2021.06.15
300x250