최종 주간 보고서 템플릿 파일 생성
이 단계에서는 조정된 종료 날짜가 포함된 주의 월요일부터 시작하여 최종 주간 보고서 템플릿 파일을 생성하는 방법을 배우게 됩니다.
create 함수에서 종료 날짜를 조정한 후 다음 코드를 추가합니다:
def create(start_date, end_date):
## "weekly" 폴더 생성
os.makedirs("weekly", exist_ok=True)
## 시작 날짜가 포함된 주의 금요일 찾기
## ... (이전 단계)
## 시작 날짜의 주 금요일부터 날짜 범위를 순회합니다
## ... (이전 단계)
## 종료 날짜가 토요일 또는 일요일에 해당하는 경우 이전 금요일로 조정합니다
## ... (이전 단계)
## 월요일부터 조정된 종료 날짜까지의 주에 대한 제출물 생성
## 조정된 종료 날짜가 포함된 주의 월요일 찾기
current_date = end_date
## 파일 이름 구성
file_name = current_date.strftime("%Y-%m-%d") + ".txt"
file_path = os.path.join("weekly", file_name)
while current_date.weekday() != 0: ## 0 은 월요일을 나타냅니다
current_date -= datetime.timedelta(days=1)
## 파일 내용 쓰기
with open(file_path, "w") as file:
## 월요일부터 조정된 종료 날짜까지의 평일 범위 쓰기 (주말 제외)
date = current_date
while date <= end_date:
if date.weekday() < 5: ## 0 은 월요일, 4 는 금요일을 나타냅니다
file.write(date.strftime("%Y-%m-%d") + "\n")
date += datetime.timedelta(days=1)
이 코드는 먼저 조정된 종료 날짜가 포함된 주의 월요일을 찾습니다. 그런 다음 최종 주간 보고서 템플릿의 파일 이름을 구성하고 쓰기 모드로 파일을 엽니다.
파일 내부에서 코드는 월요일부터 조정된 종료 날짜까지의 평일 범위를 주말을 제외하고 작성합니다.
이렇게 하면 최종 주간 보고서 템플릿 파일이 조정된 종료 날짜가 포함된 주의 월요일부터 조정된 종료 날짜 자체까지의 평일만 포함하도록 보장합니다.
위의 단계를 통해 제공된 시작 및 종료 날짜를 기반으로 주간 보고서 템플릿을 생성하는 report.py 파일의 create 함수 구현을 완료했습니다.
- 주간 보고서 템플릿을 생성하려면 터미널에서
python report.py 명령으로 report.py 스크립트를 실행합니다. 스크립트는 제공된 시작 및 종료 날짜를 기반으로 주간 보고서 템플릿을 생성합니다.
몇 가지 예가 아래에 제공됩니다:
## 예시 1
## start_date = datetime.date(2023,10,1) Sunday
## end_date = datetime.date(2023,10,16) Monday
$ ls weekly
2023-10-06.txt 2023-10-13.txt 2023-10-16.txt
$ cat 2023-10-06.txt
2023-10-02
2023-10-03
2023-10-04
2023-10-05
2023-10-06
$ cat 2023-10-16.txt
2023-10-16
## 예시 2
## start_date = datetime.date(2023,9,10) Sunday
## end_date = datetime.date(2023,9,24) Sunday
$ ls weekly
2023-09-15.txt 2023-09-22.txt
$ cat 2023-09-15.txt
2023-09-11
2023-09-12
2023-09-13
2023-09-14
2023-09-15
$ cat 2023-09-22.txt
2023-09-18
2023-09-19
2023-09-20
2023-09-21
2023-09-22