파이썬에서 틱(Tick)은 시간 간격을 초 단위의 부동소수점(floating-point) 숫자로 나타낸 값입니다. 특정 시점은 1970년 1월 1일 자정(12:00 AM), 즉 에포크(Epoch)로부터 경과한 초 단위의 시간으로 표현됩니다.에포크(Epoch)와 틱의 관계에포크는 컴퓨터 시스템에서 시간을 계산하는 기준점으로 널리 사용됩니다. 파이썬에서는 이 기준 시각부터 현재까지 흐른 시간을 초 단위로 측정하며, 이를 통해 날짜와 시간을 일관성 있게 다룰 수 있습니다.파이썬에서는 내장 모듈인 time 모듈을 사용하여 시간 관련 작업을
Python에서 코드 실행에 걸린 시간이나 CPU 처리 시간을 측정하려면 time 모듈의 클록(clock) 함수를 사용할 수 있습니다. 공식 문서에서도 이 함수는 벤치마킹(성능 측정) 목적으로 사용하도록 권장하고 있습니다.예제 코드import time t0 = time.clock() print(Hello) t1 = time.clock() - t0 print(Time elapsed: , t1) # 경과된 CPU 시간(초 단위 부동 소수점)실행 결과위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.Time elapsed: 0.0
파이썬에서 datetime.date 인스턴스의 timetuple() 메서드는 time.struct_time 타입의 객체를 반환합니다. 이 struct_time은 네임드 튜플(named tuple) 객체로, 각 속성에 인덱스 또는 이름을 통해 접근할 수 있다는 특징이 있습니다.struct_time 객체의 구조struct_time 객체는 날짜 필드(연도, 월, 일)와 시간 필드(시, 분, 초)를 모두 표현하는 속성들을 가지고 있으며, 추가로 서머타임(Daylight Saving Time)이 활성화되어 있는지 여부를 나타내는 플래그도 포
파이썬에서 날짜 정보를 구조화된 형태로 다루고 싶다면 timetuple() 메서드를 활용할 수 있습니다. datetime.date 인스턴스의 timetuple() 메서드를 호출하면 time.struct_time 타입의 객체가 반환됩니다. struct_time 객체란? struct_time은 네임드 튜플(named tuple) 객체입니다. 네임드 튜플은 일반 튜플과 달리 인덱스뿐만 아니라 이름으로도 각 속성에 접근할 수 있어 훨씬 직관적인 코드 작성이 가능합니다. 예를 들어 연도 값에 접근할 때 t[0]처럼 인덱스를 사용하거나,
Python에서 현재 날짜와 시간을 얻는 방법은 여러 가지가 있습니다. 그중 가장 간단하고 널리 사용되는 방법은 표준 라이브러리인 datetime 모듈을 활용하는 것입니다. datetime 모듈의 now() 함수를 호출하면 현재 날짜와 시간을 손쉽게 확인할 수 있습니다.기본 사용 예제import datetime now = datetime.datetime.now() print(현재 날짜와 시간: ) print(str(now))실행 결과위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.2017-12-29 11:24:48.0
Python에서 형식화된 날짜와 시간 얻기Python에서 날짜와 시간을 원하는 형식으로 출력하고 싶다면 strftime() 함수를 사용하면 됩니다. 이 함수는 포맷 문자열(format string)을 인수로 받아, 지정한 형식에 맞춘 결과를 문자열로 반환합니다.아래 표는 strftime() 함수에서 사용할 수 있는 주요 포맷 코드(directive)와 각 코드의 의미입니다.strftime() 포맷 코드 정리포맷 코드의미%a지역 설정(locale) 기준 요일의 축약형 이름 (예: Mon, Tue)%A지역 설정 기준 요일의 전체 이름
Python에서는 내장 calendar 모듈을 사용하면 특정 연도의 특정 월에 해당하는 달력을 아주 간단하게 출력할 수 있습니다. calendar.month() 함수에 연도(year)와 월(month)을 인수로 전달하기만 하면 됩니다.예제아래 예제에서는 2017년 11월의 달력을 출력합니다.import calendar y = 2017 m = 11 print(calendar.month(y, m))실행 결과위 코드를 실행하면 다음과 같은 형식으로 달력이 출력됩니다. November 2017 Mo Tu We Th Fr Sa Su
Python에서 날짜로부터 하루를 빼고 싶다면 datetime 모듈의 timedelta 객체를 사용하면 됩니다. timedelta는 일(day), 시간, 분, 초 등 원하는 시간의 양을 나타내는 객체로, 이를 날짜나 datetime 객체에 더하거나 빼서 손쉽게 날짜를 계산할 수 있습니다.즉, 하루 전 날짜를 구하려면 timedelta(days=1) 객체를 생성한 뒤, 현재 날짜에서 이 값을 빼주면 됩니다.예제 코드from datetime import datetime from datetime import timedelta today
Python에서는 strptime 함수를 사용하여 문자열을 날짜 객체로 변환할 수 있습니다. 이 함수에는 날짜 문자열과 해당 날짜가 작성된 형식(format)을 함께 전달하면 됩니다.예제아래 예제는 29122017이라는 문자열을 2017년 12월 29일이라는 날짜 객체로 변환하는 과정을 보여줍니다.import datetime date_str = 29122017 # 날짜 - 2017년 12월 29일 format_str = %d%m%Y # 날짜 형식 지정 datetime_obj = datetime.datetime.strptime(dat
Python의 날짜(date) 구현은 모든 비교 연산자를 지원합니다. 따라서 datetime 모듈을 사용하여 날짜 객체를 생성하고 다루고 있다면, <, >, <=, >= 등의 연산자를 날짜에 그대로 적용할 수 있습니다. 이 덕분에 유효성 검사 등을 위해 날짜를 비교하거나 확인하는 작업이 매우 간단해집니다. 예제 아래 예제에서는 오늘 날짜와 어제 날짜 객체를 만들어 서로 비교해 봅니다. from datetime import datetime from datetime import timedelta today = d
날짜 객체에서 Pandas 오프셋을 빼면 그 결과는 Pandas Timestamp 객체로 반환됩니다. 이 객체는 문자열 형식의 날짜나 표준 Python 날짜(Date) 객체로 변환할 수 있으며, 필요에 따라 datetime 라이브러리의 timedelta 객체를 활용할 수도 있습니다.오프셋 계산 예제먼저 to_offset 함수를 사용해 날짜에서 오프셋을 뺀 결과가 어떤 타입인지 확인해 보겠습니다.from pandas.tseries.frequencies import to_offset import pandas as pd dt = pd.
파일의 생성 시간을 확인하려면 Windows 환경에서는 os.path.getctime(file_path) 함수를 사용하면 됩니다. 하지만 UNIX 계열 시스템(Linux, macOS 등)에서는 이 함수가 생성 시간이 아닌, 파일의 속성이나 내용이 마지막으로 변경된 시간을 반환하기 때문에 그대로 사용할 수 없습니다.UNIX 기반 시스템에서 실제 생성 시간을 얻으려면 os.stat()이 반환하는 stat 객체의 st_birthtime 속성을 사용해야 합니다. 참고로 Linux에서는 커널 수준에서 생성 시간을 제공하지 않는 경우가 많아,
원시 문자열(Raw String) 표기법파이썬 공식 문서에 따르면, 원시 문자열 표기법(rtext)은 정규식을 그 의미 그대로 유지하면서 혼란 없이 작성할 수 있도록 도와주는 방법입니다. 이 표기법을 사용하지 않으면 정규식 안의 모든 백슬래시(\) 앞에 이스케이프용 백슬래시를 하나 더 붙여야 합니다. 예를 들어 아래 두 코드는 기능적으로 완전히 동일합니다.>>> re.match(r\W(.)\1\W, ff ) <_sre.SRE_Match object; span=(0, 4), match= ff > >&
re.finditer() 메서드란?파이썬 공식 문서에 따르면 re.finditer()는 다음과 같은 형태로 사용됩니다.re.finditer(pattern, string, flags=0)이 메서드는 정규식 패턴이 문자열 내에서 일치하는 모든 비중첩(non-overlapping) 매치에 대해 매치 객체(MatchObject)를 하나씩 반환하는 이터레이터(iterator)를 생성합니다. 문자열은 왼쪽에서 오른쪽 방향으로 검색되며, 매치 결과는 발견된 순서대로 얻을 수 있습니다. 빈 문자열과의 매치(Empty match) 역시 결과에 포함
정규식(Regular Expression)을 사용하면 날짜 문자열이 특정 형식을 따르는지 손쉽게 검증할 수 있습니다. 아래 예제에서는 파이썬의 re.match() 함수를 활용해 날짜 문자열이 일-월-년(d-m-y) 형식과 일치하는지 확인하는 방법을 살펴봅니다.정규식 패턴 분석예제에서 사용된 정규식 패턴은 다음과 같습니다.(\d{2})[/.-](\d{2})[/.-](\d{4})$\d{2}: 두 자리 숫자(일 또는 월)를 의미합니다.[/.-]: 하이픈(-), 슬래시(/), 마침표(.) 중 하나를 구분자로 허용합니다.\d{4}: 네 자리
파이썬 정규식에서 주어진 문자열 내 각 매칭(match) 항목의 정확한 위치를 찾으려면 re.finditer() 메서드를 사용하면 됩니다.finditer()는 문자열에서 정규식 패턴과 일치하는 모든 부분을 매치 객체(Match Object) 형태로 순서대로 반환하는 이터레이터입니다. 각 매치 객체는 다음과 같은 유용한 정보를 제공합니다.m.start() — 매칭이 시작되는 위치(인덱스)m.end() — 매칭이 끝나는 위치(인덱스)m.span() — 시작 위치와 끝 위치를 튜플로 반환m.group() — 실제 매칭된 문자열예제 코드아
정규식(regular expression)은 텍스트 처리 작업에서 특정 패턴을 걸러내는 과정을 크게 쉽게 만들어 주는 강력한 도구입니다. 하지만 편리함만큼이나 성능 문제도 함께 따라오기 때문에, 적절한 최적화 전략을 세우는 것이 중요합니다.1. 정규식을 한 번 컴파일하고 재사용하기정규식의 가장 큰 장점 중 하나는 컴파일 후 재사용이 가능하다는 점입니다. 정규식 패턴은 함수가 여러 번 호출되더라도 변하지 않기 때문에, 매번 새로 해석하지 않고 한 번만 컴파일해 두면 실행 속도를 눈에 띄게 개선할 수 있습니다.다만 컴파일 자체에도 비용
re.compile() 메서드란?re.compile(pattern)은 정규식 패턴을 미리 컴파일하여 패턴 객체(pattern object)로 만들어 주는 메서드입니다. 이렇게 생성된 패턴 객체는 문자열 매칭에 반복적으로 재사용할 수 있으며, 같은 패턴을 여러 번 사용할 때마다 일일이 다시 작성할 필요가 없어 코드가 간결해지고 실행 성능도 향상됩니다.특히 동일한 정규식을 여러 문자열에 적용해야 하는 경우, 패턴을 한 번만 컴파일해 두면 매번 컴파일하는 오버헤드를 줄일 수 있어 효율적입니다.사용 예제import re # TP 패턴을
파이썬(Python) 정규 표현식에서 물음표 리터럴(?)은 여러 가지 방식으로 사용되는 다재다능한 메타 문자입니다. 이 글에서는 물음표가 어떤 의미를 가지는지, 그리고 실제로 어떻게 활용되는지 자세히 살펴보겠습니다. 특수 문자로서의 ? 물음표가 특수 문자(special character)로 사용되면, 바로 앞에 있는 정규 표현식(RE)이 0번 또는 1번 나타나는 경우와 일치하도록 만듭니다. 즉, 해당 요소를 선택 사항(optional)으로 취급하는 역할을 합니다. 예를 들어 ab?는 a 또는 ab와 모두 일치합니다. b가 있어도
Python 정규식과 백슬래시 충돌 문제정규식(regular expression)은 백슬래시 문자(\)를 사용하여 특수한 형태를 표현하거나, 특수 문자가 지닌 특별한 의미를 해제하고 일반 문자로 취급하도록 합니다. 그런데 여기서 문제가 발생합니다. Python은 문자열 리터럴(string literal) 안에서도 같은 목적으로 동일한 백슬래시 문자를 사용하기 때문입니다.예를 들어, 정규식으로 리터럴 백슬래시 하나를 매칭하려면 어떻게 해야 할까요? 정규식 엔진 입장에서는 패턴이 \\여야 하고, 일반 Python 문자열 리터럴 안에서