<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python提取PPT中的圖片

          共 1964字,需瀏覽 4分鐘

           ·

          2021-12-14 00:00

          一、前言

          今天要帶大家實(shí)現(xiàn)的是PPT圖片的提取。在我們學(xué)習(xí)工作中,PPT的使用還是非常頻繁的,但是自己做PPT是很麻煩的,所以就需要用到別人的模板或者素材,這個(gè)時(shí)候提取PPT圖片就可以減少我們很多工作。

          二、實(shí)現(xiàn)原理

          其實(shí)實(shí)現(xiàn)原理很簡(jiǎn)單,我們的pptx文件其實(shí)是一個(gè)壓縮包。我們可以直接修改pptx文件的后綴,改成zip然后解壓,比如下面這個(gè):

          解壓后的目錄

          這是解壓后的文件。我們可以在ppt目錄下找到一個(gè)media目錄,這個(gè)目錄下就是我們要的圖片的。這個(gè)目錄包含了PPT的所有多媒體文件。

          知道這點(diǎn)后,我們就可以選擇用Python來(lái)解壓出PPT中的media目錄就可以提取出所有圖片了。

          三、提取PPT中的圖片

          1、打開(kāi)壓縮包

          在Python中提供了一個(gè)zipfile模塊用于處理壓縮包文件。我們來(lái)看看它的簡(jiǎn)單操作:

          from?zipfile?import?ZipFile
          #?打開(kāi)壓縮文件
          f?=?ZipFile("test.pptx")
          #?查看壓縮包所有文件
          for?file?in?f.namelist():
          ????print(file)
          #?關(guān)閉壓縮包文件
          f.close()

          輸出的部分結(jié)果如下:

          [Content_Types].xml
          _rels/.rels
          ppt/presentation.xml
          ppt/slides/_rels/slide2.xml.rels
          ppt/slides/slide1.xml
          ppt/slides/slide2.xml
          ppt/slides/slide3.xml

          可以看到我們打印出了壓縮包的文件。

          2、解壓文件

          我們還可以通過(guò)下面的方式打開(kāi)壓縮包:

          from?zipfile?import?ZipFile
          with?ZipFile("test.pptx")?as?f:
          ????for?file?in?f.namelist():
          ????????print(file)

          通過(guò)with語(yǔ)句,就可以不顯示地調(diào)用close方法。下面我們看看解壓操作:

          from?zipfile?import?ZipFile
          with?ZipFile("test.pptx")?as?f:
          ????for?file?in?f.namelist():
          ????????#?解壓文件
          ????????f.extract(file,?path="unzip")

          解壓文件的操作通過(guò)f.extract來(lái)實(shí)現(xiàn),這里傳入了兩個(gè)參數(shù),分別是壓縮包文件,和解壓路徑,如果壓縮包有密碼還需要傳入解壓密碼。

          然后我們還需要判斷一下,如果是媒體目錄我們才解壓。我們添加一點(diǎn)代碼:

          from?zipfile?import?ZipFile
          with?ZipFile("test.pptx")?as?f:
          ????for?file?in?f.namelist():
          ????????#?如果是media目錄下的文件就解壓
          ????????if?file.startswith("ppt/media/"):
          ????????????f.extract(file,?path="unzip")

          這樣我們就實(shí)現(xiàn)了PPT圖片的提取。

          四、提取PPT中的圖片

          我們把上面代碼再完善一下:

          import?os
          from?zipfile?import?ZipFile
          #?解壓目錄
          unzip_path?=?"unzip"
          #?如果解壓目錄不存在則創(chuàng)建
          if?not?os.path.exists(unzip_path):
          ????os.mkdir(unzip_path)
          with?ZipFile("test1/test.pptx")?as?f:
          ????for?file?in?f.namelist():
          ????????if?file.startswith("ppt/media/"):
          ????????????f.extract(file,?path=unzip_path)

          這里我們就是添加了一個(gè)解壓目錄的創(chuàng)建,這樣我們執(zhí)行的時(shí)候就不會(huì)因?yàn)槟夸洸淮嬖诙鴪?bào)錯(cuò)了。

          另外,其實(shí)我們手動(dòng)解壓然后提取PPT中的圖片也是很方便的,也并不會(huì)比程序慢。

          各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請(qǐng)移步小程序體驗(yàn)一下哦!(歡迎提建議)

          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類(lèi)型的基本操作(長(zhǎng)文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長(zhǎng)文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長(zhǎng)文系列第③篇)

          牛逼!Python錯(cuò)誤、異常和模塊(長(zhǎng)文系列第④篇)


          瀏覽 97
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月婷丁香久久 | 亚洲激情视频在线 | 爱液视频,免费观看入口 | 91插插插插 | 亚洲国产伦理 |