Python的一次實際應用:利用Python操作Word文檔的頁碼

Python的一次實際應用:利用Python操作Word文檔的頁碼

需求:一次性處理24個文檔的頁碼。

文檔詳情:

1、每個word文檔包含800頁左右,每一頁包含一個標題和一張圖片。

2、由于圖片有橫排也有豎排,因此,每頁文檔都進行了分節處理。

3、但每一節的頁碼格式不統一,并且沒有連續編號。

要求:

1、所有頁面的頁碼必須連續編號。

2、所有頁面的頁碼格式必須統一(字體、字號相同)。

如果手工處理工作量很大,因為無法全部選中頁腳。使用Python語言程序來處理上述文檔,程序代碼如下:

from docx import Document
from docx.oxml.shared import qn
from docx.oxml import parse_xmldef process_word_document(doc_path, output_path):# 打開Word文檔doc = Document(doc_path)# 獲取文檔中的所有節sections = doc.sectionsprint(f"文檔共有 {len(sections)} 個節")# 處理第一節(特殊處理,不鏈接到前一節)first_section = sections[0]first_footer = first_section.footer# 清除第一節頁腳內容for paragraph in list(first_footer.paragraphs):p = paragraph._elementp.getparent().remove(p)for table in list(first_footer.tables):t = table._elementt.getparent().remove(t)print("已處理第1節")# 處理其他節for i, section in enumerate(sections[1:], 1):footer = section.footer# 清除頁腳內容for paragraph in list(footer.paragraphs):p = paragraph._elementp.getparent().remove(p)for table in list(footer.tables):t = table._elementt.getparent().remove(t)# 設置頁腳鏈接到前一節footer.is_linked_to_previous = True# 設置頁碼為續前節sectPr = section._sectPrpgNumType = sectPr.find(qn('w:pgNumType'))if pgNumType is None:pgNumType = parse_xml(r'<w:pgNumType xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"/>')sectPr.append(pgNumType)# 移除start屬性以確保續前節start_attr = qn('w:start')if pgNumType.get(start_attr) is not None:pgNumType.attrib.pop(start_attr, None)# 每處理100節打印一次進度if (i + 1) % 100 == 0:print(f"已處理 {i + 1} 個節")# 保存文檔doc.save(output_path)print(f"處理完成! 共處理了 {len(sections)} 個節")print("所有節的頁腳已清除,設置為鏈接到前一節,且頁碼設置為續前節")# 使用示例
if __name__ == "__main__":input_file = r"d:\wgx\ok\a619.docx"  # 輸入文件路徑output_file = r"d:\wgx\ok\a6190.docx"  # 輸出文件路徑process_word_document(input_file, output_file)

由于程序代碼調用了第三方庫(python-docx),因此需要先安裝python-docx庫才能運行上述代碼。

打開windows命令行窗口,執行如下命令:

pip install python-docx

執行結果如下圖所示:

在這里插入圖片描述

打開Python集成環境,執行上面的程序代碼。結果如下:

在這里插入圖片描述

該程序的功能是:

1、清除所有節中頁腳的內容(包括頁碼)。

2、設置每一節【鏈接到前一節】屬性。

3、設置每一節的頁碼為【續前節】。

執行完畢后,在文檔的任意一節中手工插入頁碼,設置頁碼的格式即可。則整個文檔的頁碼格式保持一致,并且每一節連續編號。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95025.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android15 GKI版本分析Kernel Crash問題

環境介紹編譯主機&#xff1a;amd64 Ubuntu 22.04Android源碼&#xff1a;Android15 GKIKernel版本&#xff1a;Linux 6.16Android構建系統&#xff1a;bazel構建工具鏈&#xff1a;gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-定位Linux…

rocky 9部署Zabbix監控

一、rocky安裝 需要注意在設置root用戶密碼時&#xff0c;勾選ssh遠程連接 安裝完成后直接用root登錄 1. 網絡配置 輸入nmtui 進入網絡配置界面 選擇 Edit a connection&#xff0c;再選擇接口 ens3 IPV4更改為Maual 手動模式 根據實際環境配置IP地址 重啟網絡 systemctl …

從9.4%到13.5%:ICDM2025錄取率觸底反彈,競爭壓力稍緩

近日&#xff0c;ICDM 2025公布了論文錄用結果。本次大會共收到785篇有效論文投稿&#xff0c;最終&#xff0c;共有106篇常規論文和70篇短論文被接收&#xff0c;總體接收率為22.4%&#xff0c;其中全文論文的接收率為13.5%。與前年9.4%、去年11.09%的錄取率相比&#xff0c;I…

linux上安裝methylkit -- 安全下車版 (正經版: Linux環境下安裝methylKit的實踐與避坑指南)

題外話&#xff1a; 我踩過的坑&#xff0c;都將成為我寫貼的素材&#xff01;(ㄒoㄒ) 整整安裝了兩天&#xff0c;這里面的滋味懂的都懂。 希望開發作者持續維護。 希望有人或者作者持續打包成sigularity鏡像使用&#xff0c;并且直接傳到github上&#xff0c;傳到docker上下…

【leetcode】114. 二叉樹展開為鏈表

文章目錄題目題解1. 遞歸2. 迭代3. 右指針重排&#xff0c;始終將右子樹添加到左子樹的最右題目 114. 二叉樹展開為鏈表 題解 1. 遞歸 先序遍歷然后將數組操作 for i in range(1, len(res)):prev, curr res[i - 1], res[i]prev.left Noneprev.right curr# Definition fo…

Vibe Coding、AI IDE/插件

概述 Vibe Coding&#xff0c;氛圍編程&#xff0c;AI輔助編程&#xff0c;三劍客&#xff1a; Google Gemini&#xff1a;OpenAI GPT&#xff1a;Anthropic Claude&#xff1a; IDE Cursor 基于VS Code開發。 特性&#xff1a; AI驅動的代碼生成&#xff1a;輸入想要的…

Unity高級UI拖動控制器教程

在游戲開發過程中&#xff0c;UI組件的拖動功能是一個常見的需求。特別是在需要實現拖動、邊界檢測、透明度控制以及動畫反饋等功能時&#xff0c;編寫一個高級UI拖動控制器將非常有用。在本文中&#xff0c;我們將創建一個支持多種Canvas模式和更精確邊界檢測的高級UI拖動控制…

零基礎上手:Cursor + MCP 爬取 YouTube 視頻數據

前言 大模型與 AI 應用越來越普及的今天&#xff0c;實時、穩定地獲取網絡數據變得尤為重要。無論是做內容分析、趨勢研究還是自動化任務&#xff0c;爬取和處理數據始終是繞不開的一環。 傳統爬蟲往往面臨封禁、驗證碼、動態渲染等難題&#xff0c;而 Bright Data MCP&#x…

frp 一個高性能的反向代理服務

文章目錄項目概述核心特性系統架構快速開始1. 下載安裝2. 服務端快速配置3. 客戶端快速配置4. 驗證連接配置文件說明代理類型TCP/UDP 代理HTTP/HTTPS 代理安全代理 (STCP/SUDP)P2P 代理 (XTCP)插件系統靜態文件服務HTTP/SOCKS5 代理協議轉換使用場景遠程辦公Web 服務發布游戲服…

Android -第二十一次技術總結

一、activity與Fragment的通信有哪些&#xff1f;使用接口進行通信的邏輯與代碼示例使用接口通信的核心是解耦&#xff0c;通過定義一個接口作為通信契約&#xff0c;讓 Fragment 不依賴于具體的 Activity 類型。1. 定義通信接口&#xff08;在 Fragment 內&#xff09;首先&am…

【算法】78.子集--通俗講解

通俗易懂講解“子集”算法題目 一、題目是啥?一句話說清 給你一個不含重復元素的整數數組,返回所有可能的子集(包括空集和它本身)。 示例: 輸入:nums = [1,2,3] 輸出:[[], [1], [2], [1,2], [3], [1,3], [2,3], [1,2,3]] 二、解題核心 使用回溯法(遞歸)或位運算來…

Cherrystudio的搭建和使用

1、下載和安裝 Cherry Studio 官方網站 - 全能的 AI 助手 2、配置LLM 3、聊天助手 3.1 添加和編輯助手 3.2 選擇LLM 3.3 對話聊天 4、配置MCP 4.1 安裝MCP執行插件 4.2 安裝 node和npm Node.js — Download Node.js npm -v 10.9.3 node -v v22…

基于Matlab結合膚色檢測與卷積神經網絡的人臉識別方法研究

近年來&#xff0c;隨著人工智能與計算機視覺技術的發展&#xff0c;人臉識別在人機交互、安防監控、身份認證等領域得到了廣泛應用。本文提出了一種基于 MATLAB 平臺&#xff0c;結合 膚色檢測與卷積神經網絡&#xff08;CNN&#xff09; 的人臉識別方法。該方法首先利用膚色模…

在八月點燃AI智慧之火:CSDN創作之星挑戰賽開啟靈感盛宴

在八月點燃AI智慧之火&#xff1a;CSDN創作之星挑戰賽開啟靈感盛宴八月驕陽似火&#xff0c;智能時代的技術熱情同樣熾熱。在這個充滿創新活力的季節&#xff0c;「AIcoding八月創作之星挑戰賽」正式拉開帷幕&#xff0c;為CSDN的創作者們打造一個展示才華、碰撞靈感的專業舞臺…

解密 Vue 3 shallowRef:淺層響應式 vs 深度響應式的性能對決

&#x1f4d6; 概述 shallowRef() 是 Vue 3 中的一個組合式 API 函數&#xff0c;用于創建淺層響應式引用。與 ref() 不同&#xff0c;shallowRef() 只在其 .value 被直接替換時觸發響應式更新&#xff0c;不會深度監聽對象內部屬性的變化。 &#x1f3af; 基本概念 什么是 sh…

Linux進程間通信(IPC)深入解析

Linux進程間通信&#xff08;IPC&#xff09;深入解析 1 概述 Linux 進程間通信 (Inter-Process Communication, IPC) 是不同進程之間交換數據與同步操作的機制。現代 Linux 內核提供了多種 IPC 方式&#xff0c;從傳統的管道和 System V IPC 到現代的套接字和 D-Bus&#xff0…

TensorFlow-GPU版本安裝

前言&#xff1a; &#xff08;1&#xff09;因項目需求&#xff0c;需要安裝TensorFlow-GPU版本&#xff0c;故本文在此記錄安裝過程。 &#xff08;2&#xff09;有注釋&#xff0c;優先看注釋 &#xff08;3&#xff09;本文所使用的GPU為NVIDIA GeForce RTX 5080 Laptop GP…

Elasticsearch 索引字段刪除,除了 Reindex 重建索引還有沒有別的解決方案?

unsetunset1、問題來源unsetunset在生產環境維護 Elasticsearch 集群的過程中&#xff0c;經常會遇到這樣的場景&#xff1a;業務需求變更導致某些字段不再使用&#xff0c;或者早期設計時添加了一些冗余字段&#xff0c;現在需要清理掉。最近球友在公司的一個項目中就遇到了這…

Ubuntu虛擬機磁盤空間擴展指南

這是一份詳細且易于理解的 Ubuntu 虛擬機磁盤空間擴展指南。本指南涵蓋了兩種主流虛擬機軟件&#xff08;VirtualBox 和 VMware&#xff09;的操作步驟&#xff0c;并分為 “擴展虛擬磁盤” 和 “在 Ubuntu 內部分配新空間” 兩大部分。重要提示&#xff1a;在進行任何磁盤操作…

教程1:用vscode->ptvsd-創建和調試一個UI(python)-轉載官方翻譯(有修正)

vscode用python開發maya聯動調試設置 3dsMax Python開發環境搭建 3文聯動之debugpy調試max‘python. 3文聯動之socket插槽注入max‘python 本教程是max主動接收創建代碼的方式&#xff08;預先運行界面&#xff0c;通過按鈕主動讀取py腳本&#xff0c;執行斷點&#xff09;&…