Python으로 파일명에 현재 시각을 붙인다【초보자용】

파이썬에서 로그 출력 파일을 만들 때 파일 이름에 현재 시간을 넣을 때의 메모입니다.
아울러 csv 출력에 관한 메모도 기재해 둡니다.

현재 일시 취득


datetime.datetime.now() 에서 현재 날짜와 시간을 얻을 수 있습니다.
print(datetime.datetime.now())

>>2019-06-22 09:44:54.569669

샘플



파일명에 현재 시각을 넣어 작성하는 샘플입니다.datetime.strftime() 로 날짜 형식을 지정합니다.
 now = datetime.datetime.now()
 filename = './output/log_' + now.strftime('%Y%m%d_%H%M%S') + '.csv'
 f = open(filename, 'w')
 writer = csv.writer(f, lineterminator='\n') 

실행하면 log_20190622_094828.csv 와 같은 파일명으로 작성됩니다.

날짜 형식 지정



이어서 C#에서 DateTime 형식 지정과 비교합니다.


형식
pyhton
C#


기원(4자리)
%Y
yyyy

기원(2자리)
%y
yy

월(2자리)
%m
MM

일(2자리)
%d
dd

시간(2자리)
%H
HH

분(2자리)
%M
mm

초(2자리)
%S
ss


달과 분의 대문자, 소문자가 반대이므로, C#에서 Python으로 이행하는 사람은 조금 주의가 필요하네요.

csv 파일 출력


writer.writerow(リスト配列) 를 사용합니다.
#リスト配列はそのまま、指定する
a = [1,2,3]
writer.writerow(a)

>>1,2,3

#Numpy配列は、tolist()でリスト配列に変換してから
b = np.array([10, 20, 30])
writer.writerow(b.tolist())

>>10,20,30

#文字列などは、[]でリスト配列にしてから
writer.writerow(["日付",now])
writer.writerow(["日付",now.strftime('%Y/%m/%d'),now.strftime('%H:%M:%S')])

>>日付,2019-06-22 11:38:23.506582
>>日付,2019/06/22,11:38:23

datetime 형식을 그대로 출력했을 때는 엑셀로 열 때 깨끗하지 않습니다.
(엑셀의 버전에 따를지도 모릅니다만.)

좋은 웹페이지 즐겨찾기