代码拉取完成,页面将自动刷新
同步操作将从 ypftest/python-word-process 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
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()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。