1 Star 0 Fork 2

w4sevens / python-word-process

forked from ypftest / python-word-process 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
python-docx-text-picture.py 5.27 KB
一键复制 编辑 原始数据 按行查看 历史
杨鹏飞 提交于 2020-08-21 17:41 . 分步处理更新
"""
90篇棋牌类文档处理
标题行之后随机插入一段文字及一幅图片
"""
import pythoncom
import os
from docx import Document
from docx.opc.exceptions import PackageNotFoundError
from docx.shared import Inches
# 读取文件夹下的特定后缀的文件名列表
def file_name(file_dir, file_format):
file_list = []
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == file_format:
file_list.append(os.path.join(root, file))
return file_list
# 标题行之后插入一段文字及一幅图片
def add_para_picture(doc, para, picture):
try:
run = doc.paragraphs[0].add_run("\n" + para)
#run.add_break()
#run.add_picture(picture, width=Inches(5.25))
return True
except Exception as e:
print(e)
print("图片不符合要求:", picture)
return False
# 随机取列表中的一个值返回
def pick_random_one(list):
import random
return random.choice(list)
def main():
file_list = file_name("D:\\文件处理\\2020.8.12-88篇棋牌\\M", ".docx")
print(len(file_list))
picture_list_M = file_name("D:\\文件处理\\麻将图片", ".jpg")
para_list_M = ['麻将_具体玩法介绍', '麻将_安卓版下载', '麻将_手机版下载']
picture_list_N = file_name("D:\\文件处理\\扑克图片", ".jpg")
para_list_N = ['扑克_具体玩法介绍', '扑克_安卓版下载', '扑克_手机版下载']
picture_list_D = file_name("D:\\文件处理\\斗地主", ".jpg")
para_list_D = ['斗地主_具体玩法介绍', '斗地主_安卓版下载', '斗地主_手机版下载']
# if len(picture_list) < len(file_list):
# print("图片素材不足!必须是文章数量的一倍以上")
# return
for file in file_list:
pythoncom.CoInitialize()
try:
doc = Document(file)
# 分离路径和文件名
# (filepath, filename) = os.path.split(file)
# if filename.startswith('M'):
# para = pick_random_one(para_list_M)
# picture = pick_random_one(picture_list_M)
# # print(picture)
# while not add_para_picture(doc, para, picture):
# # 若插入图片失败,删除不适用的图片素材,并重新选图
# picture_list_M.remove(picture)
# picture = pick_random_one(picture_list_M)
# # 插入图片成功,则保存文件
# doc.save(file)
# # 删除已使用过的图片素材
# picture_list_M.remove(picture)
# elif filename.startswith('N'):
# para = pick_random_one(para_list_N)
# picture = pick_random_one(picture_list_N)
# # print(picture)
# while not add_para_picture(doc, para, picture):
# # 若插入图片失败,删除不适用的图片素材,并重新选图
# picture_list_N.remove(picture)
# picture = pick_random_one(picture_list_N)
# # 插入图片成功,则保存文件
# doc.save(file)
# # 删除已使用过的图片素材
# picture_list_N.remove(picture)
# elif filename.startswith('D'):
# para = pick_random_one(para_list_D)
# picture = pick_random_one(picture_list_D)
# # print(picture)
# while not add_para_picture(doc, para, picture):
# # 若插入图片失败,删除不适用的图片素材,并重新选图
# picture_list_D.remove(picture)
# picture = pick_random_one(picture_list_D)
# # 插入图片成功,则保存文件
# doc.save(file)
# # 删除已使用过的图片素材
# picture_list_D.remove(picture)
# else:
# print('未知的文件类型!')
# 麻将
para = pick_random_one(para_list_M)
picture = pick_random_one(picture_list_M)
while not add_para_picture(doc, para, picture):
# 若插入图片失败,删除不适用的图片素材,并重新选图
picture_list_M.remove(picture)
picture = pick_random_one(picture_list_M)
# 插入图片成功,则保存文件
doc.save(file)
# 删除已使用过的图片素材
picture_list_M.remove(picture)
# 扑克
# para = pick_random_one(para_list_N)
# picture = pick_random_one(picture_list_N)
# while not add_para_picture(doc, para, picture):
# # 若插入图片失败,删除不适用的图片素材,并重新选图
# picture_list_N.remove(picture)
# picture = pick_random_one(picture_list_N)
# # 插入图片成功,则保存文件
# doc.save(file)
# # 删除已使用过的图片素材
# picture_list_N.remove(picture)
except PackageNotFoundError:
pass
finally:
# 释放资源
pythoncom.CoUninitialize()
if __name__ == '__main__':
main()
Python
1
https://gitee.com/w4dll/python-word-process.git
git@gitee.com:w4dll/python-word-process.git
w4dll
python-word-process
python-word-process
master

搜索帮助