程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

分享幾個好用到爆的 Python 模塊,建議收藏!

編輯:Python

作者 | 俊欣

來源 | 關於數據分析與可視化

今天小編來給大家推薦幾個在自動化辦公領域當中非常好用的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()

往期回顧

“如今,99%以上的代碼都是垃圾!”

Deepfake 技術換臉真假難辨!

當你不再是程序員,很多事會脫離掌控

7歲男童因下棋太快,被機器人夾斷手指?

分享
點收藏
點點贊
點在看

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved