效果展示:——周计划 统一文件后缀名
背景需求:
制作“周计划”,这是难度很高的批量修改(至少有4页内容需要填写),因此分几次说明、
本次是最简单的第1步——原素材调整文件名、统一后缀、去除空行
所有周计划系列4套的原文件调用前,都要先调整格式,统一后缀,取出空行
主要步骤:
1、doc更改,统一文件名长度
2、doc转docx
3、docx去掉回车符(空行)
4、手动提取word内容导入EXCEL
5、在word模板里,将EXCEL内容填入,保存多个docx
6、把docx转成png
6、把1张png切割成2张png(班级主页)
素材准备:
都是“04 周计划 ”下的内容
第01步:修改文件名
代码展示:
1、先把‘’(‘为分割点,在增加周计划)
2、再把‘ ’为分割点,空格前面的字符(第X周)等于3,就加0,等于4就跳过
import os
import time
path =r"D:\test\02办公类\91周计划4份_2024年中4班\04 周计划\01doc"
fileList=os.listdir(path)
print(fileList)
for file in fileList:
# 如果格式不统一 提取所有的周次
split_str = file.split('(')
newname1 = split_str[0] # _的第0部分=序号
print(newname1)
newname2= split_str[1] # _的第0部分=序号
print(newname2)
newname=newname1+' 周计划('+newname2
oldname_path = os.path.join(path,file)
# 文件新路径
newname_path = os.path.join(path,newname)
# 新旧对调
os.rename(oldname_path, newname_path)
# 延时
time.sleep(2)
fileList=os.listdir(path)
for file in fileList:
print(file)
# 第06周 周计划(春天来了).docx 已空格为分割点,
split_str = file.split(' ')
newname0 = split_str[0] # 空格前面的长度
print(len(newname0))
# 计算“空格”前面的"第1周“的长度,如果等于3就加0,等于4就跳过
if len(newname0)==3:
split_str = file.split('第')
# 用第为分割点,
newname0 = split_str[0]
newname2= split_str[1]
# 第前面+第0+第后面的所有内容
newname=newname0+'第0'+newname2
print(newname)
oldname_path = os.path.join(path,file)
# 文件新路径
newname_path = os.path.join(path,newname)
# 新旧对调
os.rename(oldname_path, newname_path)
if len(file)==4:
pass
终端显示——第XX周,带主题名称,有后缀
第2步:原有文件格式从doc变成docx
大部分已经是docx,只有一个文件是doc
代码说明
合并后后缀等于“doc+x”或“docx+x”,如果出现xx,就重新取名变成x ,
import os
from win32com import client as wc
import time
# 注意:目录的格式必须写成双反斜杠
path=r"D:\test\02办公类\91周计划4份_2024年中4班\04 周计划"
oldpath=path+r'\01doc' # 使用绝对地址(可更改)原文件doc地址
newpath=path+r'\02docx'# 使用绝对地址(可更改)docx地址
# 提取所有doc内的19周doc周计划的路径
# 因为原始文件有doc和docx。所以写两个可能性
files=[]
for file in os.listdir(oldpath):
# 找出文件中以.doc结尾并且不以~$开头的文件(~$是为了排除临时文件)
if file.endswith('.doc') and not file.startswith('~$'):
files.append(oldpath+'\\'+file)
print(files)
if file.endswith('.docx') and not file.startswith('~$'):
files.append(oldpath+'\\'+file)
print(files)
# 打开doc文件下的doc文件,另存到docx文件下的docx文件
for file in files:
word = wc.Dispatch("Word.Application")
print("已处理文件:"+file)
# # # 打开文件
doc = word.Documents.Open(file)
# # # 将文件另存为到docx文件夹,另存为.docx
# # 这里根据文件名称长度,因为文件名不是一样长短,所以要从前面开始确定切割点,不要最后的
new=newpath+'\\'+file[43:]+'x'
# 因为有doc和docx,所以会出现docxx的后缀
if new[-2:]=='xx': # 如果最后两个字符是xx
new=new[:-2]+'x' # 变成1个x
else:
pass
print(new)
doc.SaveAs("{}".format(new), 12) # 12表示docx格式
doc.Close()
第3步:删除docx里面的回车符
from docx import Document
from openpyxl import load_workbook
import glob
import os
path=r"D:\test\02办公类\91周计划4份_2024年中4班\04 周计划"
for file in glob.glob(path + r'\02docx\*.docx'): # 读取所有以前的信息窗参考资料
doc = Document(file)
for paragraph in doc.paragraphs: # 读取文档段落
if len(paragraph.text) == 0:
p = paragraph._element
p.getparent().remove(p)
p._p = p._element = None
doc.save(path+r'\03去掉回车'+"\\"+file[45:])
# # ————————————————
# # 版权声明:本文为CSDN博主「lsjweiyi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# # 原文链接:https://blog.csdn.net/lsjweiyi/article/details/121728630