日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python快速处理ppt_人生苦短,我用 Python 之快速遍历 PPT

發(fā)布時間:2023/12/15 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python快速处理ppt_人生苦短,我用 Python 之快速遍历 PPT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

故事背景是這樣的,某一天師兄突然交給一項任務。雖然他吧啦吧啦地說了一堆,但是簡單總結起來就是現(xiàn)在有個一千頁的PPT和一個一千行的txt文檔,要做的事情就是把txt文檔中的一千行文字按順序分別輸入到對應的每一頁PPT中。所以操作起來完全沒有任何技術含量,完全就是苦力勞動。所以在了解清楚需求之后,腦海中大致就兩種想法:

老老實實地手工操作

編寫腳本實現(xiàn)自動化操作

然后無論選擇哪種方法,最根本的目的還是要爭取花費最短的時間來完成任務。考慮到并不清楚 Python 是否具有可以解析 PPT 的第三方模塊,另外即便有也還存在學習的時間成本,因此我首先選擇手動操作,準備先完成前100頁的操作以統(tǒng)計一個時間進行評估。

一通無意識的手工復制粘貼之后,發(fā)現(xiàn)手工操作100頁就需要花費30分鐘!!!所以如果要全部手工操作就需要花費300分鐘時間,而且這還是我在之后能始終保持和開始一般的高效率狀態(tài)。簡單思考了一下之后,對手工操作實在感到絕望,于是開始探索方案二——腳本自動處理的可能性。先做一個簡單的分析,腳本要做的事情就是將 txt 文檔中的文字逐行獲取,然后在 PPT 文件中逐頁地在特定位置添加文本框,然后添加對應文字。而 Python 遍歷操作 txt 文檔是最基本的文件操作,但是 Python 是否有能遍歷操作 PPT 的模塊支持則不得而知。不過所幸,在一番檢索工作后,驚喜地發(fā)現(xiàn)了 python-pptx 模塊。

據(jù) python-pptx 官網介紹:

python-pptx is a Python library for creating and updating PowerPoint (.pptx) files.

... ...

Round-trip any Open XML presentation (.pptx file) including all its elements

Populate text placeholders, for example to create a bullet slide

Add textbox to a slide; manipulate text font size and bold

... ...

這就是說呢,python-pptx 支持創(chuàng)建和更改 pptx 文件,支持往 pptx 中插入文本框添加文字的操作。所以說這個模塊所提供的支持非常符合我的需求,不過我當前并沒有時間把該模塊進行完整的學習,需要的是能快速完成任務。所幸文檔中也給出了一些簡單操作的樣例。因此在瀏覽了幾個樣例之后,我掌握了如何打開與保存 PPT 對象(Presentation),以及如何遍歷 PPT 頁面(slides)和往頁面中插入文本框(textBox)這個 API 的簡單使用之后,成功寫下了如下代碼實現(xiàn)了自己的任務需求:

from pptx import Presentation

from pptx.util import Inches, Pt

prs = Presentation('webvision-stage2.pptx')

pages = 0

left = Inches(4)

top = Inches(1.1)

width = Inches(5)

height = Inches(0.5)

names = []

with open('synsets.txt') as f:

for line in f:

names.append(line[10:-1])

for slide, name in zip(prs.slides, names):

pages += 1

if pages < 114:

continue

txBox = slide.shapes.add_textbox(left, top, width, height)

tf = txBox.text_frame

tf.text = name

prs.save("webvision-stage2-result.pptx")

從調研腳本實現(xiàn)的可行性到完成腳本編寫、調試與實現(xiàn)又花了差不多30分鐘,然后腳本運行1分鐘不到就把任務實現(xiàn)了。當然,作為一個富有責任心的人,在跑完腳本之后,我還花了將近20分鐘的時間將每一頁都瀏覽了一遍,在確保無誤后才將結果反饋給師兄。所以最終總的花費了將近90分鐘時間來完成這項任務,相比于預計的純手工的300+分鐘,Python 的腳本確實大大提高了工作效率。

當然這還只是對 python-pptx 模塊的一個簡單應用,python-pptx 還可以用于利用所給出的數(shù)據(jù)直接生成 PPT 或者往 PPT 中插入表格、圖片等。

相關參考

總結

以上是生活随笔為你收集整理的python快速处理ppt_人生苦短,我用 Python 之快速遍历 PPT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。