【教学类-89-02】20250128新年篇02——姓名藏头对联(星火讯飞+Python,五言对联,有横批)

背景需求:

过年了,我想用幼儿的名字写对联,但是我根本不会写,于是尝试让AI来写。

1.我班的孩子的名字都是2字和3字的

2.惊喜发现,AI它很快就能生成带名字的对联

但是观察发现,如果是二个名字的对联,它就用这两个字做头字,但如果三个字、四个字,它会随机取第1字、第3字、第2字中的两个(1和3,或者2和3),而不是用最后面两个字(2和3,不包含姓,1)

可是我希望只用幼儿的“名”,所以我把幼儿的名字变成2个字(两个名字就保留,三个名字删除姓氏,四个名字删除姓氏和第第二个字。)

再次输入:并且希望它变成个表格,方便我用Python遍历

关键词

(幼儿名字,保留最后两个字)

“XX

XX

XX

对每个名字,写一幅5字对联,如果名字是三个字就用后面2个字写,如果是名字只有二个字,就用着两个字写。表格形式呈现

只有两个字,对联肯定就用这两个字了。

素材准备

EXCLE:把AI表格复制到EXCEL内

两个WORD模版

对联(A4一页两条对联*2,必须是2的倍数)

这里是30人,15张A4

横批(A4一页五条*1,必须是5的倍数)
这里是30人,6张A4

代码展示:

'''
幼儿姓名的对联制作
星火讯飞(AI生成对联、AI生成Python代码)、阿夏
20250114
'''
import openpyxl
import os 
import docx
from docx import Document
from docx.shared import Pt 
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
import random

import os,time
import docx
from docx import Document
from docx.shared import Inches,Cm,Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn

from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

txt='华文隶书'
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\对联'

# 打开Excel文件
workbook = openpyxl.load_workbook(path+r'\名字.xlsx')

# 选择活动的工作表
sheet = workbook.active

# 创建一个空列表来存储单元格数据
data_list = []

# 遍历工作表中的所有行和列
for row in sheet.iter_rows(min_row=2, values_only=True):
    for cell in row:
        data_list.append(cell)

# 打印结果
print(data_list)


# 将列表分为每5个一组的嵌套列表
nested_list = [data_list[i:i + 5] for i in range(0, len(data_list), 5)]

# 打印结果
print(nested_list)

print('---------1、制作对联----------')

# 遍历嵌套列表并提取特定索引的值(不要第2列的名字)
extracted_values = [[str(sublist[0]), str(sublist[0]), sublist[2], sublist[3]] for sublist in nested_list if len(sublist) >= 5]

# 打印结果
print(extracted_values)


# 将 extracted_values 取消嵌套
flattened_list = [item for sublist in extracted_values for item in sublist]

# 打印结果
print(flattened_list)

# 每10个元素提取一次
chunks = [flattened_list[i:i + 8] for i in range(0, len(flattened_list), 8)]

# 打印结果
print(chunks)
print(len(chunks))


# 创建临时文件夹
new_folder = path+r'\零时文件夹'
os.makedirs(new_folder, exist_ok=True)

for nn in range(0,int(len(chunks))):    
    doc = Document(path+r'\对联.docx')

    # 单元格位置3*4格
    bg=[]
    for x in range(0,2):        # 4行
        for y in range(0,2):    # 3列
            ww=f'{x:02}{y:02}'
            bg.append(ww)
    for x in range(0,2):        # 4行
        for y in range(2,4):    # 3列
            ww=f'{x:02}{y:02}'
            bg.append(ww)
    print(bg)   
    # ['00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01', '00', '01']

    table = doc.tables[0]          # 4567(8)行

    for t in range(len(bg)):   # 02
        pp = int(bg[t][0:2])    
        qq = int(bg[t][2:4])  
        k = chunks[nn][t] 
      
        print(pp, qq, k)
        print(k)  
        
        # 写入序号和生肖名称
        run = table.cell(pp, qq).paragraphs[0].add_run(' '.join(map(str, k)))  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值