Python程序设计 作业5 送你一首集句诗
设计思路:
利用字典存放每个人对应的诗句和诗名,用pillow库构建图片。
实现方案
首先利用.csv
文件存储人名,根据.csv文件中的项构建空字典。读入《全唐诗》的.txt
文件,根据正则表达式找出人名中的每个字的诗句,同时将其诗名与这句诗组成一个list。再将这些list组成一个list。使用random
函数从每个字的list中抽取一句作为诗句。将其存入之前的空字典中。这样,在这个字典中,.csv
文件中的每一项对应字典的一个key,一个key对应的一个list,存放的是4个list,分别对应“赠”以及人名的三个字的诗句和诗名。
之后使用pillow
库构建图片。事先从晚上下好5张图片作为背景,利用random
函数挑选其中一张作为一张卡片的背景。利用pillow
的resize
调整大小,用pillow.ImageDraw
库生成对应文字最终保存。
关键代码说明
构建字典部分
1 | f = csv.reader(open('name.csv')) # 读入csv文件 |
构建图片部分
1 | for name in names_dict: |
效果展示
心得体会
本次作业考察的主要是我们对课堂上讲过的正则表达式以及各类容器的使用,难度并不是很大。而耗费时间最多的部分反而在于最终构建贺卡的部分。一开始我选择的是使用markdown构建贺卡之后转成pdf,遇到的困难主要有构建markdown文件时的格式(换行,背景等)以及最终将md文件转成pdf文件。而后一项始终未能解决,因此在耗费大量时间之后不得不重新更换成使用pillow库构建图片的方式来完成本次作业。
我一开始真没想到,md文件转成pdf文件不好转,也没想到python写md会有如此多的问题。因此耗费了大量的时间。这提醒我们在完成目标前,需要对方法进行充分的了解、判断,不能盲目开做,最终只会费力不讨好。
本作业已上传至Github以及Gitee,希望各位能点个star再走 :smile:。