728x90
반응형
파일을 생성하고, 반복 작업을 하다 보면
파일명 중복을 피하기 위해 파일이름에 저장 시각을 포함해야 할 경우가 생깁니다.
이 때, 아래의 함수를 짜놓고 미리 사용하면 편리하게 파일명을 규칙적으로 생성할 수 있고,
저장 폴더 경로도 설정하고, 해당 폴더가 기존에 없을 경우 새로 생성 할 수도 있습니다.
[Python script]
1. MakeFileName(index = 'file', extension = '', hms_option = False)
- index = 'file' : 파일명 앞에 들어갈 문자열
- extension = '' : 파일 확장자(ex> csv, txt, png 등)
- hms_option = False : 파일명에 저장 시각(hhmmss 형태) 포함 여부 지정(False 일경우 yymmdd 정보만 포함)
2. MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = True, hms_option = False)
- input_path = 'C:/' : 폴더를 생성할 경로 지정
- index = 'folder_name' : 생성하고자 하는 폴더 이름 지정
- timestamp_option = True : 폴더명에 저장 일자(yymmdd 형태) 정보 포함 여부 지정
- 만약 timestamp_option 가 false일 경우 hms_option 입력에 상관없이 아무런 타임스탬프 정보가 폴더명에 포함되지 않음
- hms_option = False : 폴더명에 저장 시각(hhmmss 형태) 정보 포함 여부 지정
# Library Import
import os
import datetime
from pathlib import Path
def MakeFileName(index = 'file', extension = '', hms_option = False):
if hms_option == True :
timestamp = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
else :
timestamp = datetime.datetime.now().strftime("%y%m%d")
fileName = '{}_{}.{}'.format(index, timestamp, extension)
print(fileName)
return fileName
def MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = True, hms_option = False):
if timestamp_option == True:
if hms_option == True :
timestamp = datetime.datetime.now().strftime("%y%m%d_%H%M%S")
else :
timestamp = datetime.datetime.now().strftime("%y%m%d")
folderName = '{}_{}'.format(index, timestamp)
else :
folderName = '{}'.format(index)
path_folder = input_path + folderName
Path(path_folder).mkdir(parents=True, exist_ok=True)
os.chdir(path_folder)
print(path_folder)
[실행 결과]
먼저, MakeFileName 함수를 hms_option에 따라 실행한 결과는 다음과 같습니다.
MakeFileName(index = 'file', extension = 'csv', hms_option = True)
MakeFileName(index = 'file', extension = 'csv', hms_option = False)
Out[30]: 'file_220128_153638.csv'
Out[31]: 'file_220128.csv'
MakeFolder 함수를 timestamp_option과 hms_option을 바꾸어가며 실행한 결과는 다음과 같습니다.
timestamp_option가 False인 경우는 hms_option과 무관하게 폴더명에 시간정보가 포함되지 않고, timestamp_option가 True인 경우는 hms_option에 따라 폴더 이름이 달라지는 것을 볼 수 있습니다.
MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = False, hms_option = True)
MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = False, hms_option = False)
MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = True, hms_option = True)
MakeFolder(input_path = 'C:/', index = 'folder_name', timestamp_option = True, hms_option = False)
C:/folder_name
C:/folder_name
C:/folder_name_220128_153844
C:/folder_name_220128
반응형
'Code Note' 카테고리의 다른 글
[python] timestamp 현재 일자/시각 문자열로 출력(한국 표준시 KST) (0) | 2023.08.17 |
---|---|
[python] list에서 중복 원소 제거(duplicate elements) (0) | 2023.02.10 |
[python] pip로 폴더 내 모든 whl 파일 설치하기(사내망, 보안) (0) | 2022.05.05 |
[Python] Dictionary 생성 & 추가(키-값 쌍) (0) | 2022.02.10 |
[Python] list comprehension 중 if else 필터링 (0) | 2022.01.28 |