기록하는삶

[파이썬/Python] 메모장 활용하기, datetime 활용 본문

AI/파이썬(Python)

[파이썬/Python] 메모장 활용하기, datetime 활용

mingchin 2021. 12. 9. 02:52
728x90
반응형

학습을 시키거나 반복문을 돌리는 등 오래 걸리는 작업을 하거나, 결과물을 text 형태로 저장하고 싶은 경우 메모장(.txt)을 활용해 기록하는 것이 편리할 때가 있다. 이때 중복 파일을 피한다거나 내용에 시간을 기록해야 하는 경우 활용할 수 있는 것이 datatime 모듈이다.

from pytz import timezone
import datetime as dt 

now = dt.datetime.now().astimezone(timezone('Asia/Seoul'))
formattedDate = now.strftime("%m%d_%H시%M분")

위처럼 datetime 모듈의 datetime.now()는 해당 코드가 실행되는 시점의 시간을 내부적인 형식으로 가진다. 다시 now의 attribute인 strftime()을 이용하면 , 해당 시간을 문자화 할 수 있다. % 기호를 활용하며 형식은 원하는대로 구성하면 된다. 파일을 반복해서 생성하는 경우, 파일 명에 시간을 입력해주어 중복 제거 및 시간으로 정렬이 가능하다.

# csv로 저장 예시 example.to_csv(f"./바탕 화면/저장/{formattedDate}.csv", index = False)


[메모장에 쓰기]
with open(경로, 옵션) 문을 이용해 .txt 파일이 있다면 열고, 없다면 생성하여 기록을 할 수 있다.
옵션 자리에 'w'를 주면 쓰기, 'r'을 주면 읽기를 목적으로 파일을 생성하거나 연다. 'a'를 주면 없다면 새로 만들고 이미 파일이 존재하는 경우에는 열어서 무언가 추가할 수 있다.
이를 활용해 메모장에 기록하는 예시는 아래와 같다.

with open("./바탕 화면/미니프로젝트/기록.txt", "a") as f: 
f.write("-------------------------------------------------------------------------------------------------------\n") 
f.write(f'현재 시각: {formattedDate}') 
f.write("\n\n") f.write("[예시]\n") 
f.write(f'메모장에는 이렇게') 
f.write("\n\n") 
f.write(f"기록을 하면 된다.") 
f.write("\n")

주의할 것이 있다면 \n을 두 번 줘야 메모장에서 한 줄 떨어진 형태로 보인다는 점이다. 맨 마지막에 \n을 주지 않은 상태에서 메모장을 열어 텍스트를 입력하면, 원래 존재하던 글씨에 뒤에 가서 그냥 붙어버린다.

[메모장에서 읽어오기]
메모장 파일을 f로 열어준 뒤(옵션: 'r') readlines 함수를 이용하면 존재하는 모든 줄(line)을 리스트로 반환한다.

f = open("C:/파일.txt", 'r') 
lines = f.readlines() 
for line in lines: 
	print(line) f.close() 
# 또는
with open("C:/파일.txt", 'r'): 
	lines = f.readlines() 
    for line in lines: 
    	print(line)

with문 없이 그냥 open을 활용하면 매번 close()를 사용해주어야 하니, with문이 편하다.

728x90
반응형