Python读取两列名言CSV并随机选行传入Quote2Image的方法
现有代码的问题
- 遍历CSV的循环执行完后,
line变量只会保留文件最后一行的内容,无法获取随机行 - 未引入随机选择逻辑,达不到随机抽取名言的需求
convert()函数调用未闭合,缺少必要的收尾逻辑,生成的图片对象没有保存步骤
可直接运行的修复代码
from Quote2Image import convert import csv import random # 读取CSV所有行存入列表 with open('quotes.csv', encoding='utf8') as f: all_quotes = list(csv.DictReader(f)) # 随机抽取单条数据 selected = random.choice(all_quotes) Q = selected['quotes'] A = selected['authors'] # 生成图片,按需补全你需要的自定义参数(字体、字号、背景色、尺寸等) img = convert( cquote=Q, cauthor=A ) # 保存生成的图片 img.save('random_quote.png')
注意事项
- 请确认你的CSV文件第一行表头确实为
quotes和authors,和代码里读取的键名完全匹配,否则会触发键错误 - 上述写法适合体量不大的名言数据集,如果你后续用到百万行级别的超大CSV,可以替换为蓄水池采样算法实现常数内存的随机行抽取,普通场景用现有写法足够,逻辑简单不易出错
- 如果
convert()函数有其他必填参数(比如字体路径、画布尺寸),直接在参数列表里按文档要求补充即可,不要漏掉函数末尾的闭合括号。
内容的提问来源于stack exchange,提问作者Bobby Wibowo
相关产品推荐
相关产品推荐

