【教学类-07-04】20221113《破译电话号码-加减法版+自制(PDF打印)》(大班主题《我要上小学》)

 效果图

 背景需求:

      前期做了一套破译电话号码(图片版)

【教学类-07-03】20221106《破译电话号码-图形版(2类)+自制(PDF打印)》(大班主题《我要上小学》)_print((phone)==int(phonestr)) b print(str(phone)==-CSDN博客文章浏览阅读406次。【教学类-07-03】20221106《破译电话号码-图形版(2类)+自制(PDF打印)》(大班主题《我要上小学》)_print((phone)==int(phonestr)) b print(str(phone)==phonestr) c print(id(phonehttps://blog.csdn.net/reasonsummer/article/details/127714821

           其实大班教学参考书上的破译电话号码是“破解加减法数学题”,因此我希望把图形替换成“10以内加法题、10以内减法题”.

材料准备:

路径:r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码、

  家长电话号码.xlsx

破译电话号码模板.docx

页边距 上下左右1CM,版式:横向

  py代码:放在任意位置,不影响运行

代码设计——有学号和班级


'''
作者:阿夏
时间:2022年11月13日 破译电话号码(加减法版-有学号和班级 直接导入word)
'''
import openpyxl
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 os,random

classroom=input('班级名称(如大7)\n')

m=int(input('X以内(10以内)\n'))
# h=int(input('excle一共几行(32人)\n'))

print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word')

print('------------读取excle表单--------------')
wb = openpyxl.load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')# wb=用openpyxl打开存有号码的ExcelEx
phone = wb.active #phone=获取wb里面的数据

print('------------读取 爸爸的手机号加减法--------------')

father=[]
p1=[]
for i1 in list(phone.columns)[4]:# 第3列是爸爸的手机号    
    if i1.value!= 'Phonenum1':# 如果电话号码的值不等于'Phonenum1 不要第一行C1 
        phonestr1 = str(i1.value)# 电话字符串 = 第二列的数字的值的字符串形式
        p1.append(phonestr1)
# print(p1)# ['12345678910','0987654321',……]
# print(len(p1))#共32个
jjf1=[]
d1=[]
for o1 in p1:    # 从['12345678910','0987654321'',……]提取单个12345678910   0987654321'
    # print(o1)   
    for v1 in o1:  #从单个12345678910 提取 1 2 3 4 5 6  7 8 9 1 0(竖排)
        # print(v)
        d1.append(v1)
# print(d1)      # 把"1 2 3 4 5 6  7 8 9 1 0"变成['1', '2', '3', '4', '5', '6', '7', '8', '9','1','0','0','9'…… 32*11个号码都在一起]
for k1 in d1:  #从['1', '2', '3', '4', '5', '6', '7', '8', '9','1','0']逐一取出k
    jjf1.clear()    # 第一个数字1有8个加减法(一组,)把前面的清除后,才开始重新计算第二个数字5的6个加减法,
    for x in range(0,m):
        for y in range(0,m):
            if x+y==int(k1):           # 加法题
                c1='{}+{}=  '.format(x,y)
                jjf1.append(c1)
            if x-y==int(k1) and x>=y:   # 减法题
                c1='{}-{}=  '.format(x,y)
                jjf1.append(c1)            
    # print(jjf)
    a1=random.choice(jjf1)# 从等于3的11道"加减法"题目中随机抽取1题
    # print(a)  mo
    father.append(a1) 
print(father)            
               
print('------------读取  妈妈的手机号加减法--------------')
mother=[]
p2=[]
for i2 in list(phone.columns)[6]:# 第3列是爸爸的手机号    
    if i2.value!= 'Phonenum2':# 如果电话号码的值不等于'Phonenum1 不要第一行C1 
        phonestr2= str(i2.value)# 电话字符串 = 第二列的数字的值的字符串形式
        p2.append(phonestr2)
print(p2)# ['12345678910','0987654321',……]
# print(len(p2))#共32个
jjf2=[]
d2=[]
for o2 in p2:    # 从['12345678910','0987654321'',……]提取单个12345678910   0987654321'
    # print(o2)   
    for v2 in o2:  #从单个12345678910 提取 1 2 3 4 5 6  7 8 9 1 0(竖排)
        # print(v2)
        d2.append(v2)
# print(d)      # 把"1 2 3 4 5 6  7 8 9 1 0"变成['1', '2', '3', '4', '5', '6', '7', '8', '9','1','0','0','9'…… 32*11个号码都在一起]
for k2 in d2:  #从['1', '2', '3', '4', '5', '6', '7', '8', '9','1','0']逐一取出k
    jjf2.clear()    # 第一个数字1有8个加减法(一组,)把前面的清除后,才开始重新计算第二个数字5的6个加减法,
    for x in range(0,m):
        for y in range(0,m):
            if x+y==int(k2):           # 加法题
                c2='{}+{}=  '.format(x,y)
                jjf2.append(c2)
            if x-y==int(k2) and x>=y:   # 减法题
                c2='{}-{}=  '.format(x,y)
                jjf2.append(c2)            
    # print(jjf2)
    a2=random.choice(jjf2)# 从等于3的11道"加减法"题目中随机抽取1题
    # print(a2)  mo
    mother.append(a2) 
print(mother)           



print('------------ 爸爸的手机号拆开成11个一组的列表--------------')
father_all=[]
for i in range(0,int(len(father)/11)):
    b=father[i*11:i*11+11]
    father_all.append(b)
print(father_all)

print('------------ 妈妈的手机号拆开成11个一组的列表--------------')
mother_all=[]
for i in range(0,int(len(mother)/11)):
    b=mother[i*11:i*11+11]
    mother_all.append(b)
print(mother_all)


print('------------读取 学号或者姓名--------------')
N=[]
for i in list(phone.columns)[0]:# 学号-0 姓名1    
    phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    N.append(phonestr)
print(N)# ['N', '1', '11', '24']

print('------------读取 班级--------------')
C=[]
for i in list(phone.columns)[1]:# 第3列是爸爸的手机号    
    phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    C.append(phonestr)
print(C)#['CLASS', '大七班', '大七班', '大七班']    

print('------------ 数据导入word,字体设置--------------')
from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

for y in range(0,int(len(father)/11)):      
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\破译电话号码模板(加减法).docx')    
    wb = pd.read_excel(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')   
    table = doc.tables[0] 

    print('------------学号\班级写入,字体设置--------------')
    n=N[y+1]
    run=table.cell(0,6).paragraphs[0].add_run(n)    # 这里的可以代表学号或者名字,把上面连接的数字改掉 姓名02 学号06 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(50)  #加减法题 输入字体大小默认60
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(0,6).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    c=C[y+1]
    run=table.cell(0,8).paragraphs[0].add_run(c)    # 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(50)  #输入字体大小默认30号
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(0,8).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    for nn in range(0,11):
        print('------------ 爸爸的手机号写入不同的word,字体设置--------------')
        f=father_all[y][nn]  
        print(f) 
        run=table.cell(2,nn).paragraphs[0].add_run(f)    # 在第该表格3行1列的单元格内输入“xxxx”
        run.font.name = '黑体'#输入时默认华文琥珀字体
        run.font.size = Pt(18)  #输入字体大小默认30号
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
        table.cell(2,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

        print('------------ 妈妈的手机号写入不g同的word,字体设置--------------')
        g=mother_all[y][nn]  
        print(g) 
        run=table.cell(5,nn).paragraphs[0].add_run(g)    # 在第该表格3行1列的单元格内输入“xxxx”
        run.font.name = '黑体'#输入时默认华文琥珀字体
        run.font.size = Pt(18)  #输入字体大小默认30号
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
        table.cell(5,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 

    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx'.format('%02d'%(y+1)))#保存为XX学号的电话号码word                   
    
    # docx 文件另存为PDF文件
    inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx".format('%02d'%(y+1))  # 要转换的文件:已存在
    outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.pdf".format('%02d'%(y+1))   # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile, 'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)
    
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word"
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
file_merger.write(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\(打印合集)破译电话号码-加减法版-学号和班级({}班-{}份).pdf".format(classroom,int(len(father)/11)))
file_merger.close()
# doc.Close()

print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word") #递归删除文件夹,即:删除非空文件夹


终端运行:

 

 

 

  

重点说明:

如何根据电话号码的每一个数字倒推出随机加减法题目

以下是我预先写的一个测试代码——宝藏盒密码

1、随机生成宝藏盒的密码(6个数字)

2、如果密码是123456

3、把所有答案等于1的加法、减法题都写在一个列表里。

3、把所有答案等于2的加法、减法题都写在一个列表里。

……

4、在所有答案等于1的列表题目中,随机抽取1题,写入最后的汇总列表。

4、在所有答案等于2的列表题目中,随机抽取1题,写入最后的汇总列表。

5、获得“答案等于123456”的6道加减法混合题目

'''阿夏
2022年11月12日
随机6位数密码 倒推 加减法题目
'''

import random,re

n=int(input('输入几位密码(6位密码?)\n'))
m=int(input('X以内(10以内)'))
# 随机生成4位密码
key=[]
for k in range(0,n):
    j=random.randint(0,n)
    key.append(j)
print(key)  # [3, 3, 0, 4, 1, 1]

sin_null=re.sub(r'[],\[]', '', str(key))# 纯6位密码(中间有空格) 3 3 0 4 1 1
sin=sin_null.replace(" ", "") # 纯6位密码(中间无空格) 330411
# print(sin_null,sin)

tm=[] # 题目
for i in range(0,len(key)):    # 索引数字
    sz=key[i]    # 提取6位密码的每个数字
    jjf=[] # 加减法题目
    for x in range(0,m):
        for y in range(0,m):
            if x+y==sz:           # 加法题
                c='{}+{}=  '.format(x,y)
                jjf.append(c)
            if x-y==sz and x>=y:   # 减法题
                c='{}-{}=  '.format(x,y)
                jjf.append(c)            
    print(jjf)
    # 例:生成答案等于3 的所有的加减法题['0+3=  ', '1+2=  ', '2+1=  ', '3+0=  ', '3-0=  ', '4-1=  ', '5-2=  ', '6-3=  ', '7-4=  ', '8-5=  ', '9-6=  ']

    a=random.choice(jjf)# 从等于3的11道"加减法"题目['0+3=  ', '1+2=  ', '2+1=  ', '3+0=  ', '3-0=  ', '4-1=  ', '5-2=  ', '6-3=  ', '7-4=  ', '8-5=  ', '9-6=  ']中随机抽取1题
    # print(a)   
    tm.append(a)
    # 6个数字、6个列表里分别抽取1题添加到题目列表中,['4-1=  ', '6-3=  ', '0+0=  ', '6-2=  ', '0+1=  ', '2-1=  ']
print(tm)# 打印题目

重点:EXCEL提取号码,写入列表。两次提取列表,把单个数字变成字符串。所有答案符合的加法题、减法题都写出来。从中抽取1个,一起合并。

 

 图案再展示

 有些孩子只有1个手机号码(幼儿签到刷卡,家长必须绑一个手机号)所以我把这唯一的号码复制到第二个号码中。正好可以验证同样的数字号码,生成的加减法题目是不是也不同(随机抽题目)

 可以看到,写出来的数字是一样的,但是加减法题目不同

感悟:

1、层次性学具——破译电话号可以用多种“符号图形”、“加减法题目”、“自行绘画”来替代

2、答案(数字)倒推题目(加减法)——可以让更多随机数字被可以应用更多的题型中(破解密码箱、色块涂色等)

附:

本次教学用的代码:(有名字和班级,无学号)


'''
作者:阿夏
时间:2022年11月5日 破译电话号码-图形版-名字和班级(不需要分列,直接导入word)
'''
import openpyxl
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 os

classroom=input('班级名称(如大1)\n')

print('----------第2步:新建一个临时文件夹------------')
# 新建一个”装N份word和PDF“的文件夹
os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word')

print('------------读取excle表单--------------')
wb = openpyxl.load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')# wb=用openpyxl打开存有号码的ExcelEx
phone = wb.active #phone=获取wb里面的数据

print('------------读取 爸爸的手机号--------------')
symbol_1=['●','●','●', '●', '●', '●','●', '●','●','●','●']
father=[]
for i in list(phone.columns)[4]:# 第3列是爸爸的手机号    
    phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    print(phonestr)# 打印电话字符串
    # Phonenum1
    # 13512345678
    # 16556345690
    # 13724680156
    print('------------ 爸爸的手机号的数字全部写在一起--------------')
    # for i in phonestr:
    col = 0 # 
    for _ in phonestr:# 在电话字符串里面循环遍历 取各种数字
        if i.value!= 'Phonenum1':# 如果电话号码的值不等于'dad' 不要第一行C1
            if int(_) != 0:# 如果取出的数字不等于0  等于1-9
                str_temp = int(_) * symbol_1[col] #  结果等于 取出的数字的整数 乘以 符号列表的相应列数的符号(批量几个符号)
            else:# 如果取出的数字=于0
                str_temp = '零'# 0=零
            # print( str_temp)
            father.append(str_temp)                  
        col +=1           
print(father)
# ['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●', '●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零', '●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']

print('------------读取  妈妈的手机号--------------')
mother=[]
symbol_2 = ['▲','▼','●','♦','■','▶','◀','◣','◥','◤','◢']# 
for j in list(phone.columns)[6]:
    phonestr = str(j.value)
    print(phonestr)
    # Phonenum2
    # 13214562358
    # 15615617891
    # 13123568210
    print('------------ 妈妈的手机号的数字全部写在一起--------------')
    col = 0#  第一个字符串的起始列 123数下去 mum电话的第一位数在第O列=15列
    for _ in phonestr[:]:
        if j.value != 'Phonenum2':
            if int(_) != 0:
                str_temp = int(_) * symbol_2 [col]  
            else:
                str_temp = '零'
            mother.append(str_temp) 
        col +=1            
print(mother)
# ['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢', '▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢', '▲', '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']

print('------------ 爸爸的手机号拆开成11个一组的列表--------------')
father_all=[]
for i in range(0,int(len(father)/11)):
    b=father[i*11:i*11+11]
    father_all.append(b)
print(father_all)
# [['●', '●●●', '●●●●●', '●', '●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●', '●●●●●●●●'], # ['●', '●●●●●●', '●●●●●', '●●●●●', '●●●●●●', '●●●', '●●●●', '●●●●●', '●●●●●●', '●●●●●●●●●', '零'],['●', '●●●', '●●●●●●●', '●●', '●●●●', '●●●●●●', '●●●●●●●●', '零', '●', '●●●●●', '●●●●●●']]

print('------------ 妈妈的手机号拆开成11个一组的列表--------------')
mother_all=[]
for i in range(0,int(len(mother)/11)):
    b=mother[i*11:i*11+11]
    mother_all.append(b)
print(mother_all)
# [['▲', '▼▼▼', '●●', '♦', '■■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣', '◥◥◥', '◤◤◤◤◤', '◢◢◢◢◢◢◢◢'],
#  ['▲', '▼▼▼▼▼', '●●●●●●', '♦', '■■■■■', '▶▶▶▶▶▶', '◀', '◣◣◣◣◣◣◣', '◥◥◥◥◥◥◥◥', '◤◤◤◤◤◤◤◤◤', '◢'], 
# ['▲',  '▼▼▼', '●', '♦♦', '■■■', '▶▶▶▶▶', '◀◀◀◀◀◀', '◣◣◣◣◣◣◣◣', '◥◥', '◤', '零']]

print('------------读取 学号或者姓名--------------')
N=[]
for i in list(phone.columns)[2]:# 学号-0 班级1  姓名2   
    phonestr = str(i.value)# 电话字符串 = 第二列的数字的值的字符串形式
    N.append(phonestr)
print(N)# ['N', '1', '11', '24']

print('------------读取 班级--------------')
C=[]
for i in list(phone.columns)[1]:# 班级  
    phonestr = str(i.value)# 
    C.append(phonestr)
print(C)#['CLASS', '大七班', '大七班', '大七班']    

print('------------ 数据导入word,字体设置--------------')
from docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor

for y in range(0,int(len(father)/11)):      
    doc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\破译电话号码模板(图案).docx')    
    wb = pd.read_excel(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\家长电话号码.xlsx')   
    table = doc.tables[0] 

    print('------------学号\班级写入,字体设置--------------')
    n=N[y+1]
    run=table.cell(0,2).paragraphs[0].add_run(n)    # 这里的可以代表学号或者名字,把上面连接的数字改掉 姓名02 学号06 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(45)  #输入字体大小默认30号
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(0,2).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    c=C[y+1]
    run=table.cell(0,8).paragraphs[0].add_run(c)    # 班级08
    run.font.name = '黑体'#输入时默认华文琥珀字体
    run.font.color.rgb = RGBColor(220,220,220) #设置颜色浅灰
    run.font.size = Pt(45)  #输入字体大小默认30号
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
    table.cell(0,8).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

    for nn in range(0,11):
        print('------------ 爸爸的手机号写入不同的word,字体设置--------------')
        f=father_all[y][nn]  
        print(f) 
        run=table.cell(2,nn).paragraphs[0].add_run(f)    # 在第该表格3行1列的单元格内输入“xxxx”
        run.font.name = '黑体'#输入时默认华文琥珀字体
        run.font.size = Pt(18)  #输入字体大小默认30号
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
        table.cell(2,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中

        print('------------ 妈妈的手机号写入不g同的word,字体设置--------------')
        g=mother_all[y][nn]  
        print(g) 
        run=table.cell(5,nn).paragraphs[0].add_run(g)    # 在第该表格3行1列的单元格内输入“xxxx”
        run.font.name = '黑体'#输入时默认华文琥珀字体
        run.font.size = Pt(18)  #输入字体大小默认30号
        r = run._element
        r.rPr.rFonts.set(qn('w:eastAsia'), '黑体')#将输入语句中的中文部分字体变为华文行楷
        table.cell(5,nn).paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER #居中 

    doc.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx'.format('%02d'%(y+1)))#保存为XX学号的电话号码word                   
    
    # docx 文件另存为PDF文件
    inputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.docx".format('%02d'%(y+1))  # 要转换的文件:已存在
    outputFile = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word\{}.pdf".format('%02d'%(y+1))   # 要生成的文件:不存在
    # 先创建 不存在的 文件
    f1 = open(outputFile, 'w')
    f1.close()
    # 再转换往PDF中写入内容
    convert(inputFile, outputFile)
    
print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    
# 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
import os
from PyPDF2 import PdfFileMerger
target_path = r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word"
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger = PdfFileMerger()
for pdf in pdf_lst:
    print(pdf)
    file_merger.append(pdf)
file_merger.write(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\(打印合集)破译电话号码-图案版-名字和班级({}班-{}份).pdf".format(classroom,int(len(father)/11)))
file_merger.close()
# doc.Close()

# print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree(r"C:\Users\jg2yXRZ\OneDrive\桌面\破译电话号码\零时Word") #递归删除文件夹,即:删除非空文件夹


       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿夏reasonsummer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值