零代码编程:用ChatGPT批量设置Word文件格式

news2025/1/19 17:16:55

文件夹中有很多txt文本文件,要转换成word文件,且要批量设置一些文件格式,方便后续的打印。

文本文件如下:

在chatgpt中输入提示词:

你是一个Python编程专家,要完成一个处理word内容的任务,具体步骤如下:

打开文件夹:D:\lexfridman-podtext;

将里面所有的txt文本文件转换为word文件;

删除word文件中所有的空白段落:如果一个段落后面紧跟着另一个空白段落,那么就删除这个空白段落;

在word文件页眉的左上角添加页码;

word文件的页边距设置为上:1cm,下:1cm,左:1cm,右:1cm;

word文件的行距设为单倍行距;

word文件段落之间的间距段前设为0行,段后设为0磅;

Word文件中的字体设为Cambria字体,字号设为10号;

注意:每一步都要输出相关信息;

在添加页码时,使用set_attr函数来设置页码,而不是set;

添加页码时使用docx库的内置方法,而不是直接操作XML;

使用'utf-8'编码来读取文件;

使用 Document.oxml.OxmlElement('w:fldSimple');

先从 docx 导入 oxml;

在添加页码时,插入页码域;

很快生成源代码:

import os

import chardet

from docx import Document

from docx.shared import Pt, Cm

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

from docx.enum.section import WD_SECTION

from docx.oxml.ns import qn

from docx.oxml import OxmlElement

# 文件夹路径

folder_path = "D:\\lexfridman-podtext"

# 遍历文件夹中的所有文件

for filename in os.listdir(folder_path):

# 检查是否是txt文件

if filename.endswith(".txt"):

print(f"处理文件:{filename}")

# 检测文件编码

with open(os.path.join(folder_path, filename), "rb") as file:

result = chardet.detect(file.read())

# 打开txt文件并读取内容

with open(os.path.join(folder_path, filename), "r", encoding=result["encoding"]) as file:

lines = file.readlines()

# 创建一个新的Word文档

doc = Document()

# 将txt文件的内容添加到Word文档

for line in lines:

doc.add_paragraph(line.strip())

# 删除空白段落

print("删除空白段落...")

paragraphs = doc.paragraphs

i = 0

while i < len(paragraphs) - 1:

if len(paragraphs[i].text.strip()) == 0 and len(paragraphs[i + 1].text.strip()) == 0:

p = paragraphs[i]._element

p.getparent().remove(p)

paragraphs = doc.paragraphs

continue

i += 1

# 添加页码

print("添加页码...")

header = doc.sections[0].header

paragraph = header.paragraphs[0]

paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT

run = paragraph.add_run()

run.font.size = Pt(12)

fld_code = 'PAGE \\* MERGEFORMAT'

ctr = OxmlElement('w:r')

instrText = OxmlElement('w:instrText')

instrText.set(qn('xml:space'), 'preserve')

instrText.text = fld_code

fldChar1 = OxmlElement('w:fldChar')

fldChar1.set(qn('w:fldCharType'), 'begin')

ctr.append(fldChar1)

ctr.append(instrText)

fldChar2 = OxmlElement('w:fldChar')

fldChar2.set(qn('w:fldCharType'), 'end')

ctr.append(fldChar2)

paragraph._p.append(ctr)

# 设置页边距

print("设置页边距...")

section = doc.sections[0]

section.top_margin = Cm(1)

section.bottom_margin = Cm(1)

section.left_margin = Cm(1)

section.right_margin = Cm(1)

# 设置行距和段落间距

print("设置行距和段落间距...")

for paragraph in doc.paragraphs:

paragraph_format = paragraph.paragraph_format

paragraph_format.line_spacing = 1 # 单倍行距

paragraph_format.space_before = Pt(0) # 段前间距设为0行

paragraph_format.space_after = Pt(0) # 段后间距设为0磅

# 设置字体和字号

print("设置字体和字号...")

for paragraph in doc.paragraphs:

for run in paragraph.runs:

run.font.name = 'Cambria'

run._element.rPr.rFonts.set(qn('w:eastAsia'), 'Cambria')

run.font.size = Pt(10)

# 保存Word文档

doc.save(os.path.join(folder_path, filename.replace(".txt", ".docx")))

print(f"处理并保存文件:{filename.replace('.txt', '.docx')}")

print("所有文件处理完毕。")

运行程序后,文档内容如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1269303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOV8解读及推理代码

YOLOV8解读及推理代码 YOLOV8前言性能对比新的骨干网络新的 Ancher-Free 检测头新的损失函数环境配置训练基于python脚本基于命令行 推理pt模型推理onnx模型推理 YOLOV8 前言 YOLOv8并非一个全新的目标检测网络&#xff0c;而是在YOLOv5的基础上进行了升级。其主要升级包括&am…

enote笔记法之附录2——5w1h2k关联词(ver0.22)

enote笔记法之附录2——5w1h2k关联词&#xff08;ver0.22&#xff09; 最上面的是截屏的完整版&#xff0c;分割线下面的是纯文字版本&#xff1a; 作者姓名&#xff08;本人的真实姓名&#xff09;&#xff1a;胡佳吉 居住地&#xff1a;上海 作者网名&#xff1a;EverSt…

裁员降薪如果影响到你,可能还是你的问题

1.摘要 今年以来,看到的裁员风波一茬接一茬,普遍的论调都是IT行业不行了, 总之就是一片哀嚎、惨不忍睹。最近身边的一些朋友也接连传出部门被优化、被裁员的消息, 说实话我自己也被这种寒意给触碰到, 每天也加强了自己的学习频率,甚至把回家路上的碎片时间也利用起来, 目的不在…

高效管理团队表现:构建可视化的贡献度面板组件

说在前面 贡献度面板&#xff08;Contribution Graph&#xff09;是指在代码仓库中按时间展示每位开发者的提交情况的可视化图表。它会显示不同日期的提交次数&#xff0c;并用颜色的深浅表示提交的数量。 贡献度面板展现的好处有以下几点&#xff1a; 可视化展示&#xff1…

『Nginx安全访问控制』利用Nginx实现账号密码认证登录的最佳实践

&#x1f4e3;读完这篇文章里你能收获到 如何创建用户账号和密码文件&#xff0c;并生成加密密码配置Nginx的认证模块&#xff0c;实现基于账号密码的登录验证 文章目录 一、创建账号密码文件1. 安装htpasswd工具1.1 CentOS1.2 Ubuntu 二、配置Nginx三、重启Nginx 在Web应用程…

redis的数据类型的操作增删改查

redis的数据类型的操作增删改查 redis的高可用&#xff1a; 在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比&#xff08;365天&#xff09;99.9% redis的高可用的含义要更加宽泛&#xff0c;正常服务是指标之一数据容量扩展&#xff0c;数据的安全性…

ubuntu下训练自己的yolov5数据集

参考文档 yolov5-github yolov5-github-训练文档 csdn训练博客 一、配置环境 1.1 安装依赖包 前往清华源官方地址 选择适合自己的版本替换自己的源 # 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak # 修改源文件 # 更新 sudo apt update &&a…

三季度同道猎聘遇“瓶颈”,破局重点是中高端人才?

古往今来&#xff0c;人才一直是企业“争夺”的对象。随着新兴产业的快速冒头以及AI技术的崛起&#xff0c;新型人才以及中高端人才成为市场上的香饽饽&#xff0c;而这类人才的稀缺性让企业和招聘平台双方都很“头疼”。再加上外部环境的不确定性增加&#xff0c;职场人普遍求…

打造独特封面:封面设计的关键要素与技巧解析!

书籍作品的封面设计非常精致。就像商品的包装一样&#xff0c;有助于提高书籍的销量。书封的设计表现主要从图像、文字、材质等方面进行设计。基本上所有的书都需要有文字&#xff0c;所以特别考验设计师的文字排版能力。今天就和大家分享一些书籍封面设计的小知识&#xff0c;…

轻松整合Knife4j:快速搭建Swagger文档界面与接口调试

Knife4j 是一个为 Java 开发者提供的 Swagger 文档聚合工具&#xff0c;它是 Swagger-Bootstrap-UI 的升级版。它的主要功能是生成和展示 API 文档&#xff0c;让开发者能够更轻松地查看和测试接口。 整合 Knife4j&#xff08;Swagger-Bootstrap-UI 的升级版&#xff09;到 Spr…

VT驱动开发

VT技术(编写一个VT框架) 1.VT技术介绍 1.技术介绍 1.VT技术 VT技术是Intel提供的虚拟化技术&#xff0c;全称为Intel Virtualization Technology。它是一套硬件和软件的解决方案&#xff0c;旨在增强虚拟化环境的性能、可靠性和安全性。VT技术允许在一台物理计算机上同时运…

WebSocket 接口测试:打通前端与后端的通信之路!

什么是 WebSocket? WebSocket 是一种基于在单个 TCP 连接上进行全双工通信的协议&#xff0c;解决了HTTP协议不适用于实时通信的缺点&#xff0c;相较于 HTTP 协议&#xff0c;WebSocket 协议实现了持久化网络通信&#xff0c;可以实现客户端和服务端的长连接&#xff0c;能够…

微信小程序——给按钮添加点击音效

今天来讲解一下如何给微信小程序的按钮添加点击音效 注意&#xff1a;这里的按钮不一定只是 <button>&#xff0c;也可以是一张图片&#xff0c;其实只是添加一个监听点击事件的函数而已 首先来看下按钮的定义 <button bind:tap"onInput" >点我有音效&…

xxl-job适配postgresql数据库

xxl-job支持了mysql数据库&#xff0c;其他的数据库适配得自己弄一下&#xff0c;下面以目前最新的2.4.1为例进行说明适配postgresql数据库的过程。 获取源代码 从github或gitee获取源代码&#xff0c;目前最新版本2.4.1 xxl官网&#xff1a;分布式任务调度平台XXL-JOB 建立…

OpenCvSharpSlim画中文

github地址&#xff1a;https://github.com/AvenSun/OpenCvSharpSlim Slim Build of OpenCvSharp OpenCvSharpSlim This project provides the slim build of OpenCvSharp native library . Currently therere binary packages for OpenCvSharp 2.4.10, 3.4.20 ,4.8.0 and 4…

关键词挖掘软件-免费批量挖掘关键词的工具

在当今数字化时代&#xff0c;网站的曝光和排名对于吸引流量至关重要。而在这个大数据的背后&#xff0c;SEO&#xff08;Search Engine Optimization&#xff0c;搜索引擎优化&#xff09;成为许多网站主和创作者们追逐的关键。在SEO的世界里&#xff0c;关键词的选择和优化是…

数据结构与算法之美学习笔记:28 | 堆和堆排序:为什么说堆排序没有快速排序快?

目录 前言如何理解“堆”&#xff1f;如何实现一个堆&#xff1f;1. 往堆中插入一个元素2. 删除堆顶元素 如何基于堆实现排序&#xff1f;1. 建堆2. 排序 解答开篇内容小结 前言 本节课程思维导图&#xff1a; 我们今天讲另外一种特殊的树&#xff0c;“堆”&#xff08;Heap&…

电脑IP地址怎么修改?http代理ip设置方法有哪些?

在互联网时代&#xff0c;我们的网络已经成为我们生活、工作和学习中不可或缺的一部分。有时候&#xff0c;为了保护我们的隐私或者突破网络限制&#xff0c;我们需要修改电脑的IP地址。那么&#xff0c;电脑IP地址怎么修改呢&#xff1f;http代理ip设置方法有哪些呢&#xff1…

在JS中,手动添加标签

纯个人笔记 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

前端:实现二级菜单(二级菜单悬浮在一级菜单左侧)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…