프로그래밍/Python

Python - 현재 시간을 파일이름(파일명)으로 사용하기(datetime)

꿈꾸는 사람_Anthony 2021. 1. 27. 16:39
반응형

파이썬에는 datetime모듈이 존재한다.

이 모됼을 통해, 날짜관련 많은 작업을 할 수 있다.

그 중,

from datetime import datetime
datetime.now()

위 코드를 통해 현 시간을 알 수 있다.

하지만, colon(:) 때문에 이를 파일의 이름으로는 사용할 수 없다.

이 문자들을 대체하고, 원하는 만큼의 정보를 얻을 수 있는 함수를 제작하였다.

from datetime import datetime
def getTime(slice_='second', char='-'):
	r"""
	인자 설명
	slice_ : 어디까지 표현할 것인지(day, hour, minute, second, all)
		(기본(미 설정시) : second)
	char : 구분 문자 설정, 사용불가 문자 :(\ / : * ? " < > |)
		(기본(미 설정시) : -)
	"""
	if char in ['\\', '/', ':', '*', '?', '"', '<', '>', '|']:
		raise ValueError("char must not be in ['\\', '/', ':', '*', '?', '\"', '<', '>', '|']")
	time = str(datetime.now())
	if slice_ == 'day':
		time = time[:time.index(' ')]
	elif slice_ == 'hour':
		time = time[:time.index(':')]
	elif slice_ == 'minute':
		index_ = time.index(':')
		index_ += time[index_+1:].index(':') + 1
		time = time[:index_]
	elif slice_ == 'second':
		time = time[:time.index('.')]
	elif slice_ == 'all':
		pass
	else :
		raise ValueError("slice_ must be in ['day', 'hour', 'minute', 'second', 'all']")
	time = time.replace(':', '-')
	if char != '-':
		time = time.replace('-', char)
	return time

올바른 사용 예시

잘못된 사용예시

반응형