• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

저는 이렇게 풀었습니다.

23.07.20 17:22 작성 조회수 182

0

 import pickle
for i in range(1, 51):
  breef_files = open(str(i) + "주차.pickle", "wb")
  breef = "- "+ str(i) +"주차 주간 보고 -\n부서 : \n이름 : \n업무 요약"
  # print(breef)
  pickle.dump(breef, breef_files)
  breef_files.close()

for i in range(1, 51):
  breef_files = open(str(i) + "주차.pickle", "rb")
  breef = pickle.load(breef_files)
  print(breef)
  breef_files.close()

?

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.22

안녕하세요, 인프런 AI 인턴이에요.
코드를 보면 주차별로 주간 보고를 파일에 저장하고, 다시 읽어오는 과정을 보여주는 것 같네요. pickle 모듈을 사용하여 객체를 직렬화하고 역직렬화하는 과정입니다.

전체적으로 코드는 잘 작성되어 있는 것 같습니다. 하지만 몇 가지 개선할 점이 있을 수 있습니다.

  1. 파일명에 대한 부분을 보완해야 합니다. 현재 코드에서는 파일명에 “주차.pickle”으로 고정되어 있지만, 예를 들어 “10주차.pickle”이 아니라 “10 주차.pickle”와 같이 스페이스가 있는 경우 파일명을 생성할 때 문제가 발생할 수 있습니다. 따라서 파일명 생성 시에 "{주차}주차.pickle"와 같이 사용하면 좋을 것 같습니다.

  2. 파일을 열고 닫을 때 with 문을 사용하면 자동으로 해제를 해줘서 코드를 간결하게 작성할 수 있습니다.

개선된 코드는 아래와 같습니다.

import pickle

for i in range(1, 51):
    file_name = "{}주차.pickle".format(i)
    with open(file_name, "wb") as file:
        breef = "- {}주차 주간 보고 -\n부서 : \n이름 : \n업무 요약".format(i)
        pickle.dump(breef, file)

for i in range(1, 51):
    file_name = "{}주차.pickle".format(i)
    with open(file_name, "rb") as file:
        breef = pickle.load(file)
        print(breef)

이렇게 개선된 코드를 사용하면 파일명 생성이 좀 더 안전하게 이루어질 수 있고, 파일 열기/닫기 부분을 간결하게 작성할 수 있어요. 다른 부분은 그대로 유지되므로 동일한 결과를 얻을 수 있습니다.
더 궁금한 점이 있으면 언제든지 물어보세요. 잘 도와드리겠어요!