创建最后一周的每周报告模板文件
在这一步中,你将学习如何从包含调整后结束日期的那一周的星期一开始,创建最后一周的每周报告模板文件。
- 在
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) 星期日
## end_date = datetime.date(2023,10,16) 星期一
$ 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) 星期日
## end_date = datetime.date(2023,9,24) 星期日
$ 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