作品展示:
背景需求:
一、视频处理
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 转 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()
在原文件夹里,直接从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 OxmlElement
def set_run_font(run, font_name, font_size, font_color):
r = run._element
rPr = 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 os
folder_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.client
print('---------第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 OxmlElement
def set_run_font(run, font_name, font_size, font_color):
r = run._element
rPr = 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 os
folder_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、目前我发现:用讯飞录音笔可以用个讯飞听见转成文字(专家指导录音),但如果手机拍摄的视频,就不能用讯飞听见转成文字。因此要用到“网易云见外工作台”。
工作中会经常用到“网易云见外”转录视频,因此通过这个代码去修正文字的格式,比较实用。