作品展示:
背景需求:
一、视频处理
1、育婴师培训的现场视频
2、下载视频,将视频换成考题名称
二、音频
视频用格式工厂转成MP3音频
3、转文字doc
把音频放入“网易云见外工作台”转换为“文字"
等待5分钟,音频文字会被写成文字doc
音频转文本完成了
都是doc格式的
我想把里面的字体改成“宋体 小四、1.5倍行距,蓝色字体”
是否可以利用Python,把三份内容doc内容批量改成蓝色效果 呢
第一步:doc转docx(doc有时不能读写)
三份文件放在“”123文件夹”
import os
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.enum.text import WD_COLOR_INDEX
import win32com.client# doc 转 docxfolder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹中的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith(".doc"):file_path = os.path.join(folder_path, file_name)# 创建Word应用程序对象word_app = win32com.client.Dispatch("Word.Application")# 打开原始的.doc文件doc = word_app.Documents.Open(file_path)# 将文件另存为.docx格式docx_file_path = os.path.splitext(file_path)[0] + ".docx"doc.SaveAs(docx_file_path, 12) # 使用参数12表示将文件另存为.docx格式# 关闭原始的.doc文件doc.Close()# 删除原始的.doc文件os.remove(file_path)# 退出Word应用程序word_app.Quit()
在原文件夹里,直接从doc变成docx——还是黑色字体
第二步:读取docx黑色文字,改成宋体小四、1.5倍行距、蓝色字体
import os
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
from docx.oxml.ns import qn
from docx.oxml import OxmlElementdef set_run_font(run, font_name, font_size, font_color):r = run._elementrPr = r.get_or_add_rPr()if font_name:rFonts = OxmlElement('w:rFonts')rFonts.set(qn('w:ascii'), font_name)rFonts.set(qn('w:eastAsia'), font_name)rPr.append(rFonts)if font_size:sz = OxmlElement('w:sz')sz.set(qn('w:val'), str(font_size * 2))rPr.append(sz)if font_color:color = OxmlElement('w:color')color.set(qn('w:val'), font_color)rPr.append(color)# 一级文件夹路径
folder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹内的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith('.docx'):# 打开 Word 文档doc_path = os.path.join(folder_path, file_name)doc = Document(doc_path)# 遍历文档中的段落和文字for para in doc.paragraphs:for run in para.runs:# 修改文字属性为宋体、小四、1.5倍行距、蓝色字体set_run_font(run, '宋体', 12, '0000FF')para.paragraph_format.line_spacing = 1.5 # para.paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE# 保存修改后的文档modified_doc_path = os.path.join(folder_path, file_name)doc.save(modified_doc_path)print(f'{file_name} 文档文字样式修改完成')print('所有文档处理完成')
运用Python快速将三篇docx的文字替换成其他字体和颜色,不用一篇篇手动更改字体、行距、颜色!(* ̄︶ ̄)
为什么要改成蓝色字体呢
因为操作题中语言说的部分很多,所以先把所有的导师说的话当成设置成蓝色字体,然后再观看视频,补充红色文字的动作。
还有一个美中不足的地方
第三步:文件名称里面的“+”替换成“空”
print('---------第3步:文件名中的“+”改成“ ”---------')
import osfolder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹内的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith('.docx'):new_file_name = file_name.replace('+', ' ') # 将加号替换为空格os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name))print(f'{file_name} 重命名为 {new_file_name}')print('所有文件名替换完成')
第四步:哪一种蓝色?
之前7篇都是用'0070CO'浅蓝色,所以这里也改成浅蓝色
完整代码
'''
目的:制作蓝色字体的育婴师操作步骤说明
1、育婴师三级,视频转音频,上传网易云见外
2、网易云见外下载的doc转docx
3、docx批量转换成蓝色字体格式——宋体小四、1.5倍行距、蓝色字体
4、docx文件名不能有+,转为空格
作者:AI对话大师 、阿夏
时间:2024年3月7日
'''import os,time
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.enum.text import WD_COLOR_INDEX
import win32com.clientprint('---------第1步:doc 转 docx---------')folder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹中的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith(".doc"):file_path = os.path.join(folder_path, file_name)# 创建Word应用程序对象word_app = win32com.client.Dispatch("Word.Application")# 打开原始的.doc文件doc = word_app.Documents.Open(file_path)# 将文件另存为.docx格式docx_file_path = os.path.splitext(file_path)[0] + ".docx"doc.SaveAs(docx_file_path, 12) # 使用参数12表示将文件另存为.docx格式# 关闭原始的.doc文件doc.Close()# 删除原始的.doc文件os.remove(file_path)# 退出Word应用程序word_app.Quit()time.sleep(2)print('---------第2步:黑色字体 转 蓝色字体---------')
import os
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
from docx.oxml.ns import qn
from docx.oxml import OxmlElementdef set_run_font(run, font_name, font_size, font_color):r = run._elementrPr = r.get_or_add_rPr()if font_name:rFonts = OxmlElement('w:rFonts')rFonts.set(qn('w:ascii'), font_name)rFonts.set(qn('w:eastAsia'), font_name)rPr.append(rFonts)if font_size:sz = OxmlElement('w:sz')sz.set(qn('w:val'), str(font_size * 2))rPr.append(sz)if font_color:color = OxmlElement('w:color')color.set(qn('w:val'), font_color)rPr.append(color)# 一级文件夹路径
folder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹内的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith('.docx'):# 打开 Word 文档doc_path = os.path.join(folder_path, file_name)doc = Document(doc_path)# 遍历文档中的段落和文字for para in doc.paragraphs:for run in para.runs:# 修改文字属性为宋体、小四、1.5倍行距、蓝色字体# set_run_font(run, '宋体', 12, '0000FF')set_run_font(run, '宋体', 12, '0070C0')para.paragraph_format.line_spacing = 1.5 # para.paragraph_format.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE# 保存修改后的文档modified_doc_path = os.path.join(folder_path, file_name)doc.save(modified_doc_path)print(f'{file_name} 文档文字样式修改完成')print('所有文档处理完成')time.sleep(2)print('---------第3步:文件名中的“+”改成“ ”---------')
import osfolder_path = r'D:\04三级操作题\123' # 替换为你的文件夹路径# 遍历文件夹内的所有文件
for file_name in os.listdir(folder_path):if file_name.endswith('.docx'):new_file_name = file_name.replace('+', ' ') # 将加号替换为空格os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_file_name))print(f'{file_name} 重命名为 {new_file_name}')print('所有文件名替换完成')
感悟:
1、育婴师每次培训3篇内容,其实手动改格式也很快的,但是能用Python批量解决的,我就不想人工去重复操作了。
2、目前我发现:用讯飞录音笔可以用个讯飞听见转成文字(专家指导录音),但如果手机拍摄的视频,就不能用讯飞听见转成文字。因此要用到“网易云见外工作台”。
工作中会经常用到“网易云见外”转录视频,因此通过这个代码去修正文字的格式,比较实用。