首頁 > 軟體

三個Python自動化辦公好用到爆的模組分享

2022-07-28 14:01:47

今天小編來給大家推薦幾個在自動化辦公領域當中非常好用的Python模組,可以幫助大家在工作當中及大地提高效率,避免重複機械化地操作流程。

Pathlib

涉及到檔案系統操作的時候,相信不少人仍然在使用Python當中的OS模組,相比較之下,Pathlib模組有著不少優勢,我們來看幾個簡單的案例

刪除與建立目錄

例如我們可以來建立與刪除目錄,程式碼如下

from pathlib import Path

currentPath = Path.cwd()
makePath = currentPath / 'pythonPractice'
makePath.mkdir()

那麼同樣的,刪除目錄的程式碼為

currentPath = Path.cwd()
delPath = currentPath / 'pythonPractice'
delPath.rmdir()

獲取目錄

例如我們想要獲取當前所在的目錄的路徑,程式碼如下

currentPath = Path.cwd()
print(currentPath)

以及電腦使用者所在的目錄

homePath = Path.home()
print(homePath) 

路徑的拼接

例如我們想要拼接出桌面的絕對路徑,程式碼如下

Path(Path.home(), "Desktop")

也可以是

Path.joinpath(Path.home(), "Desktop")

目錄檔案的判斷

針對指定的路徑,我們能夠來判斷是否是資料夾以及是否是一個檔案,程式碼如下

input_path = r"指定的路徑"

if Path(input_path ).exists():
 if Path(input_path ).is_file():
  print("是檔案哦!")
 elif Path(input_path ).is_dir():
  print("是資料夾哦!")
else:
 print("路徑給的不對!")

glob

Python當中的glob模組主要是用來查詢符合特定規則的目錄和檔案,並將搜尋到的結果返回到一個列表當中去。

由於該模組支援使用正則萬用字元來進行查詢,因此使用起來也是特別的方便,我們來看一下簡單的案例,

path1 = r".[0-9].jpg"
glob.glob(path1)

outut

['.\1.jpg', '.\2.jpg', '.\3.jpg', ......]

其中經常會用到的萬用字元有

  • *:匹配0個或者多個字元
  • **:匹配所有檔案、目錄,子目錄和子目錄裡面的檔案
  • []:匹配指定範圍內的字元,例如[1-9]匹配的是1-9以內的字元
  • [!]:匹配不在指定範圍內的字元

我們再來看幾個案例,程式碼如下

for fname in glob.glob("./*.py"):
    print(fname)

上面的程式碼列印出了當前目錄下的所有py字尾的檔案,再來看一下案例

for fname in glob.glob("./file[!0-9].py"):
    print(fname)

上面程式碼則是列印出了以filename開頭的非數位符號的py檔案。

PDF轉成Word檔案

最後我們來講講如何實現將PDF檔案轉換成Word格式的檔案,用到的模組是pdf2docx,我們先用pip命令來將該模組安裝一下

pip install pdf2docx

我們來實踐一下,程式碼如下

from pdf2docx import Converter

cv = Converter(r"pdf檔案的具體路徑")
cv.convert("test.docx", start=0,end=None)
cv.close()

如果是頁面元素比較簡單的檔案,pdf2docx模組處理一下是完全夠用了,但是有些時候PDF檔案當中個別頁面非常的花裡胡哨,轉換成Word格式的檔案之後則會顯得有點凌亂。

最後我們還能夠針對指定的頁數進行轉換,例如只是針對檔案當中的奇數頁進行操作,程式碼如下

from pdf2docx import Converter

cv = Converter(r"pdf檔案的具體路徑")
cv.convert("test.docx", pages=[1, 3, 5, 7])
cv.close()

到此這篇關於三個Python自動化辦公好用到爆的模組分享的文章就介紹到這了,更多相關Python自動化辦公模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com