99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀「Python自動化辦公」分享幾個好用到爆的模塊,建議收藏
「Python自動化辦公」分享幾個好用到爆的模塊,建議收藏
2022-07-30
收藏

作者:俊欣

來源:關(guān)于數(shù)據(jù)分析與可視化

今天小編來給大家推薦幾個在自動化辦公領(lǐng)域當(dāng)中非常好用的Python模塊,可以幫助大家在工作當(dāng)中及大地提高效率,避免重復(fù)機械化地操作流程。

Pathlib

涉及到文件系統(tǒng)操作的時候,相信不少人仍然在使用Python當(dāng)中的OS模塊,相比較之下,Pathlib模塊有著不少優(yōu)勢,我們來看幾個簡單的案例

刪除與創(chuàng)建目錄

例如我們可以來創(chuàng)建與刪除目錄,代碼如下

from pathlib import PathcurrentPath = Path.cwd()makePath = currentPath / 'pythonPractice'makePath.mkdir()

那么同樣的,刪除目錄的代碼為

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

獲取目錄

例如我們想要獲取當(dāng)前所在的目錄的路徑,代碼如下

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當(dāng)中的glob模塊主要是用來查找符合特定規(guī)則的目錄和文件,并將搜索到的結(jié)果返回到一個列表當(dāng)中去。

由于該模塊支持使用正則通配符來進行查找,因此使用起來也是特別的方便,我們來看一下簡單的案例,

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

outut

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

其中經(jīng)常會用到的通配符有

  • *:匹配0個或者多個字符
  • **:匹配所有文件、目錄,子目錄和子目錄里面的文件
  • []:匹配指定范圍內(nèi)的字符,例如[1-9]匹配的是1-9以內(nèi)的字符
  • [!]:匹配不在指定范圍內(nèi)的字符

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

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

上面的代碼打印出了當(dāng)前目錄下的所有py后綴的文件,再來看一下案例

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

上面代碼則是打印出了以filename開頭的非數(shù)字符號的py文件。

PDF轉(zhuǎn)成Word文檔

最后我們來講講如何實現(xiàn)將PDF文檔轉(zhuǎn)換成Word格式的文檔,用到的模塊是pdf2docx,我們先用pip命令來將該模塊安裝一下

pip install pdf2docx

我們來實踐一下,代碼如下

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

如果是頁面元素比較簡單的文檔,pdf2docx模塊處理一下是完全夠用了,但是有些時候PDF文檔當(dāng)中個別頁面非常的花里胡哨,轉(zhuǎn)換成Word格式的文檔之后則會顯得有點凌亂。

最后我們還能夠針對指定的頁數(shù)進行轉(zhuǎn)換,例如只是針對文檔當(dāng)中的奇數(shù)頁進行操作,代碼如下

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

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }