當前位置 博文首頁 > 信息技術智庫:?? 6個Python辦公黑科技,工作效率提升100倍!HR

    信息技術智庫:?? 6個Python辦公黑科技,工作效率提升100倍!HR

    作者:[db:作者] 時間:2021-09-13 18:59

    🍅 作者:不吃西紅柿

    🍅 簡介:CSDN博客專家🏆、信息技術智庫公號作者?。簡歷模板、職場PPT模板、技術難題交流、面試套路盡管【關注】私聊我。

    🍅 歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!

    一、解析PDF(簡歷內推)

    應用場景:簡歷內推(解析內容:包括不限于姓名、郵箱、電話號碼、學歷等信息)

    輸入:要解析的文件路徑

    輸出:需要解析的內容(點我主頁,詳見歷史文章)

    環境準備:python 3.6 、mac(下文中doc轉docx是mac寫法,windows更簡單,導入win32的包即可)

    依賴包:

    # encoding: utf-8
    import os, sys
    from pdfminer.pdfparser import PDFParser
    from pdfminer.pdfdocument import PDFDocument
    from pdfminer.pdfpage import PDFPage
    from pdfminer.pdfinterp import PDFResourceManager
    from pdfminer.pdfinterp import PDFPageInterpreter
    from pdfminer.layout import LAParams
    from pdfminer.converter import PDFPageAggregator
    
    def pdf_reader(file):
        fp = open(file, "rb")
        # 創建一個與文檔相關聯的解釋器
        parser = PDFParser(fp)
        # PDF文檔對象
        doc = PDFDocument(parser)
        # 鏈接解釋器和文檔對象
        parser.set_document(doc)
        # doc.set_paeser(parser)
        # 初始化文檔
        # doc.initialize("")
        # 創建PDF資源管理器
        resource = PDFResourceManager()
        # 參數分析器
        laparam = LAParams()
        # 創建一個聚合器
        device = PDFPageAggregator(resource, laparams=laparam)
        # 創建PDF頁面解釋器
        interpreter = PDFPageInterpreter(resource, device)
        # 使用文檔對象得到頁面集合
        res = ''
        for page in PDFPage.create_pages(doc):
            # 使用頁面解釋器來讀取
            interpreter.process_page(page)
            # 使用聚合器來獲取內容
            layout = device.get_result()
            for out in layout:
                if hasattr(out, "get_text"):
                    res = res + '' + out.get_text()
        return res


    二、發送郵件

    有幾個模塊用于訪問互聯網以及處理網絡通信協議。其中最簡單的兩個是用于處理從 urls 接收的數據的 urllib.request 以及用于發送電子郵件的 smtplib:

    import smtplib
    smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

    參數說明

    • host: SMTP 服務器主機。 你可以指定主機的ip地址或者域名如: runoob.com,這個是可選參數。
    • port: 如果你提供了 host 參數, 你需要指定 SMTP 服務使用的端口號,一般情況下 SMTP 端口號為25。
    • local_hostname: 如果 SMTP 在你的本機上,你只需要指定服務器地址為 localhost 即可。

    Python SMTP 對象使用 sendmail 方法發送郵件,語法如下:

    SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

    參數說明

    • from_addr: 郵件發送者地址。
    • to_addrs: 字符串列表,郵件發送地址。
    • msg: 發送消息

    案例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    ?
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    ?
    sender = 'from@runoob.com'
    
    # 西紅柿微:ZPYDWXY
    receivers = ['1221121@qq.com'] ?# 接收郵件,可設置為你的QQ郵箱或者其他郵箱
    ?
    # 三個參數:第一個為文本內容,第二個 plain 設置文本格式,第三個 utf-8 設置編碼
    message = MIMEText('Python 郵件發送測試...', 'plain', 'utf-8')
    message['From'] = Header("不吃西紅柿", 'utf-8') ? # 發送者
    message['To'] = ?Header("測試", 'utf-8') ? ? ? ?# 接收者
    ?
    subject = 'Python SMTP 郵件測試'
    message['Subject'] = Header(subject, 'utf-8')
    ?
    ?
    try:
    ? ? smtpObj = smtplib.SMTP('localhost')
    ? ? smtpObj.sendmail(sender, receivers, message.as_string())
    ? ? print "郵件發送成功"
    except smtplib.SMTPException:
    ? ? print "Error: 無法發送郵件"


    三、操作execl

    1.?關聯公式:Vlookup

    vlookup是excel幾乎最常用的公式,一般用于兩個表的關聯查詢等。所以我先把這張表分為兩個表。

    #查看訂單明細號是否重復,結果是沒。
    df1["訂單明細號"].duplicated().value_counts()
    df2["訂單明細號"].duplicated().value_counts()
    
    df_c=pd.merge(df1,df2,on="訂單明細號",how="left")

    2.?數據透視表

    需求:想知道每個地區的業務員分別賺取的利潤總和與利潤平均數。

    pd.pivot_table(sale,index="地區名稱",columns="業務員名稱",values="利潤",aggfunc=[np.sum,np.mean])

    3. 對比兩列差異

    需求:比較訂單明細號與訂單明細號2的差異并顯示出來。

    sale["訂單明細號2"]=sale["訂單明細號"]
    
    #在訂單明細號2里前10個都+1.
    sale["訂單明細號2"][1:10]=sale["訂單明細號2"][1:10]+1
    
    #差異輸出
    result=sale.loc[sale["訂單明細號"].isin(sale["訂單明細號2"])==False]

    4. 去除重復值

    需求:去除業務員編碼的重復值

    sale.drop_duplicates("業務員編碼",inplace=True)

    5. 缺失值處理

    #用0填充缺失值
    sale["客戶名稱"]=sale["客戶名稱"].fillna(0)
    #刪除有客戶編碼缺失值的行
    sale.dropna(subset=["客戶編碼"])

    6. 多條件篩選

    需求:想知道業務員張愛,在北京區域賣的商品訂單金額大于6000的信息。

    sale.loc[(sale["地區名稱"]=="北京")&(sale["業務員名稱"]=="張愛")&(sale["訂單金額"]>5000)]

    7. 模糊篩選數據

    需求:篩選存貨名稱含有"三星"或則含有"索尼"的信息。

    sale.loc[sale["存貨名稱"].str.contains("三星|索尼")]

    8. 分類匯總

    需求: 北京區域各業務員的利潤總額。

    sale.groupby(["地區名稱","業務員名稱"])["利潤"].sum()

    9. 條件計算

    需求:存貨名稱含“三星字眼”并且稅費高于1000的訂單有幾個?這些訂單的利潤總和和平均利潤是多少?(或者最小值,最大值,四分位數,標注差)

    sale.loc[sale["存貨名稱"].str.contains("三星")&(sale["稅費"]>=1000)][["訂單明細號","利潤"]].describe()

    10. 刪除數據間的空格

    需求:刪除存貨名稱兩邊的空格。

    sale["存貨名稱"].map(lambda s :s.strip(""))


    四、畫圖分析

    英雄聯盟防御力:

    防御能力最低的英雄(1級):?暗夜獵手,魔法貓咪,萬花通靈
    防御能力最高的英雄(10級):?正義巨像,披甲龍龜

    安妮、卡爾瑪能力矩陣:

    ?代碼示例:

    # encoding: utf-8
    import json
    from pyecharts.charts import Pie
    from pyecharts import options as opts
    from pyecharts.charts import Radar
    
    
    
    def draw_Radar():
        from pyecharts.charts import Radar
        radar = Radar()
        # //由于雷達圖傳入的數據得為多維數據,所以這里需要做一下處理
        radar_data = [[10, 10, 10, 10, 10]]
        radar_data1 = [[2, 10, 3, 6, 3]]
        radar_data2 = [[1, 8, 7, 5, 8]]
    
        # //設置column的最大值,為了雷達圖更為直觀,這里的月份最大值設置有所不同
        schema = [
            ("物理", 100), ("魔法", 10), ("防御", 10),("難度", 10),("喜好", 10)
        ]
        # //傳入坐標
        radar.add_schema(schema)
        radar.add("滿分", radar_data)
        # //一般默認為同一種顏色,這里為了便于區分,需要設置item的顏色
        radar.add("安妮", radar_data1, color="#E37911")
        radar.add("卡爾瑪", radar_data2, color="#1C86EE")
        radar.render()
    
    if __name__ == '__main__':
    
        draw_Radar()
    
    
    

    五、解析word(docx、doc)

    依賴包:

    # encoding: utf-8
    import os, sys
    import docx
    def word_reader(file):
        try:
            # docx 直接讀
            if 'docx' in file:
                res = ''
                f = docx.Document(file)
                for para in f.paragraphs:
                    res = res + '\n' +para.text
            else:
                # 先轉格式doc>docx
                os.system("textutil -convert docx '%s'"%file)
                word_reader(file+'x')
                res = ''
                f = docx.Document(file+'x')
                for para in f.paragraphs:
                    res = res + '\n' +para.text
            return res
        except:
            # print(file, 'read failed')
            return ''

    六、計算器

    math模塊為浮點運算提供了對底層函數庫的訪問:

    >>> import math
    >>> math.cos(math.pi / 4)
    0.70710678118654757
    >>> math.log(1024, 2)
    10.0

    熱門專欄推薦:

    🥇 大數據集錦專欄:大數據-硬核學習資料 & 面試真題集錦?
    🥈?數據倉庫專欄:數倉發展史、建設方法論、實戰經驗、面試真題?
    🥉?Python專欄:Python相關黑科技:爬蟲、算法、小工具?

    (優質好文持續更新中……)?

    cs
程序員cxuan的個人主頁:這篇 Java 基礎,我吹不動了 小小張自由―>張有博:軟件工程――編碼、測試、維護 小小張自由―>張有博:淺談面向對象方法學 小小張自由―>張有博:UML――概述(事物、關系、圖) 小小張自由―>張有博:UML――用例圖 小小張自由―>張有博:UML――活動圖和狀態圖 小小張自由―>張有博:UML――交互圖(順序圖與協作圖) 小小張自由―>張有博:UML――實現圖(構件圖與部署圖) 小小張自由―>張有博:C#編程基礎――C#與.NET的關系 小小張自由―>張有博:C#編程基礎――數據類型 小小張自由―>張有博:C#編程基礎――常量與變量 小小張自由―>張有博:C#編程基礎――運算符與表達式 小小張自由―>張有博:C#編程基礎――循環語句 小小張自由―>張有博:C#編程基礎――跳轉語句 小小張自由―>張有博:C#編程基礎――類 小小張自由―>張有博:C#編程基礎――方法 小小張自由―>張有博:初始三層架構(超超超詳細) 小小張自由―>張有博:C#連接數據庫之Connection、Command、D 小小張自由―>張有博:System.ArgumentOutOfRangeException: 小小張自由―>張有博:機房重構之單例模式的應用 小小張自由―>張有博:機房重構之備忘錄模式的應用 小小張自由―>張有博:機房重構之職責鏈模式的應用 小小張自由―>張有博:HTML基礎――標簽 小小張自由―>張有博:div+css的入門知識 小小張自由―>張有博:CSS核心內容:標準流、盒子模型、浮動 小小張自由―>張有博:asp.net生成驗證碼并提交驗證 小小張自由―>張有博:XML基礎 小小張自由―>張有博:各種計算機語言簡短簡介 小小張自由―>張有博:2020年10月自考總結 小小張自由―>張有博:vs2019利用gitee(碼云)協作開發 小小張自由―>張有博:1024程序員節 小小張自由―>張有博:IDEA2020.3詳細安裝教程 小小張自由―>張有博:JavaWeb之Request與Response詳解 小小張自由―>張有博:JavaWeb之Filter和Listener 小小張自由―>張有博:Vue插件報錯:Vue.js is detected on t 小小張自由―>張有博:在項目中使用Spring Cloud Alibaba Sen 小小張自由―>張有博:在項目中使用OpenFeign 小小張自由―>張有博:解決idea打開Vue項目報紅 小小張自由―>張有博:CentOS7詳細安裝教程--圖文介紹超詳細 zhtbs的博客:Springboot 入門培訓 5 Thymeleaf 與 MVC項目搭建 zhtbs的博客:(Framework7 移動webapp) Springboot 入門培訓 7 zhtbs的博客:HTML+CSS+JavaScript 迷宮生成算法 【建議收藏】 zhtbs的博客:(Framework7 移動webapp) Springboot 入門培訓 8 C zhtbs的博客:Springboot 入門培訓 9 Security(一) 登錄驗證 zhtbs的博客:Springboot 入門培訓 4 WEB+JSP MVC項目搭建 zhtbs的博客:Springboot 入門培訓 10 Security(二) 數據庫DB 貓耳山在天邊:《Linux命令行與shell腳本編程大全》(第三版)讀 英雄哪里出來:??13萬字《C語言動漫對話教程(入門篇)》??(建議收 qq1113673178的博客:[學習][筆記] qt5 從入門到入墳:<12>Grap qq1113673178的博客:[學習][筆記] qt5 從入門到入墳:<13>基于 .net平臺的rabbitmq使用封裝demo詳解 C++類的特種函數生成機制詳解 Python調用百度AI實現圖片上表格識別功能 node自定義安裝更改npm全局模塊默認安裝路徑的步驟 帶你用C語言實現strtok和字符串分割函數 靜態網頁和靜態網頁性能比較 網頁標題優化原則和描述優化原則 php 怎么設置cookie記住密碼 php設置時區無效怎么辦 php __autoload 失效怎么辦 有關PHP調試的小技巧,看看吧! 從0開始:教你微信小店怎么開! 成本5元竟然賣50元 微信朋友圈賣面膜真黑啊 HashMap原理及put方法與get方法的調用過程 基于IDEA 的遠程調試 Weblogic的操作過程 UTC時間、GMT時間、本地時間、Unix時間戳的具體使用 如何利用SwiftUI實現可縮放的圖片預覽器 網站怎么利用內容更新雙重境界快速提高網站權重? php顯示繁體亂碼怎么辦 php不能開啟php_curl怎么辦
A级免费视频