欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Word文件自動(dòng)化實(shí)戰(zhàn)之簡(jiǎn)歷篩選

 更新時(shí)間:2022年05月12日 11:20:02   作者:渴望力量的哈士奇  
本文將利用Python自動(dòng)化做一個(gè)具有實(shí)操性的小練習(xí),即通過(guò)讀取簡(jiǎn)歷來(lái)篩選出符合招聘條件的簡(jiǎn)歷。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

上一章節(jié)我們練習(xí)了通過(guò)表格和段落獲取 word 文件的信息之后,現(xiàn)在來(lái)做一個(gè)具有實(shí)操性的小練習(xí)。通過(guò)讀取簡(jiǎn)歷來(lái)篩選出符合招聘條件的簡(jiǎn)歷,接下來(lái)看看要如何實(shí)現(xiàn)這個(gè)小功能。

簡(jiǎn)歷篩選

簡(jiǎn)歷相關(guān)信息如下:

定義 ReadDoc 類(lèi)用以讀取 word 文件

已知條件:

想要查找包含指定關(guān)鍵字的簡(jiǎn)歷(比如 Python、Java)

實(shí)現(xiàn)思路:

批量讀取每一個(gè) word 文件(通過(guò) glob 獲取 word 信息),將他們的所有可讀內(nèi)容獲取,并通過(guò)關(guān)鍵字方式篩選,拿到目標(biāo)簡(jiǎn)歷地址。

這里有個(gè)需要注意的地方就是,并不是所有的 "簡(jiǎn)歷" 都是以段落的形式呈現(xiàn)的,比如從 "獵聘" 網(wǎng)下載下來(lái)的簡(jiǎn)歷就是 "表格形式" 的,而 "boss" 上下載的簡(jiǎn)歷就是 "段落形式" 的,這里再進(jìn)行讀取的時(shí)候需要注意下,我們做的演示腳本練習(xí)就是 "表格形式" 的。

這里的話,我們就可以專(zhuān)門(mén)定義一個(gè) "ReadDoc" 的類(lèi),里面定義兩個(gè)函數(shù),分別用于讀取 "段落" 和 "表格" 。

實(shí)操案例腳本如下:

# coding:utf-8

from docx import Document

class ReadDoc(object):              # 定義一個(gè) ReadDoc ,用以讀取 word 文件
    def __init__(self, path):       # 構(gòu)造函數(shù)默認(rèn)傳入讀取 word 文件的路徑
        self.doc = Document(path)
        self.p_text = ''
        self.table_text = ''

        self.get_para()
        self.get_table()

    def get_para(self):             # 定義 get_para 函數(shù)用以讀取 word 文件的段落
        for p in self.doc.paragraphs:
            self.p_text += p.text + '\n'    # 讀取的段落內(nèi)容進(jìn)行換行
        print(self.p_text)

    def get_table(self):            # 定義 get_table 函數(shù)循環(huán)讀取表格內(nèi)容
        for table in self.doc.tables:
            for row in table.rows:
                _cell_str = ''      # 獲取每一行的完整信息
                for cell in row.cells:
                    _cell_str += cell.text + ','    # 每一行加一個(gè) "," 隔開(kāi)
                self.table_text += _cell_str + '\n'     # 讀取的表格內(nèi)容進(jìn)行換行
        print(self.table_text)

if __name__ == '__main__':
    path = glob.os.path.join(glob.os.getcwd(), 'test_file/簡(jiǎn)歷1.docx')
    doc = ReadDoc(path)
    print(doc)

看一下 ReadDoc 類(lèi)的運(yùn)行結(jié)果

定義 search_word 函數(shù)用以篩選 word 文件內(nèi)容符合想要的簡(jiǎn)歷

OK,上文已經(jīng)成功讀取了簡(jiǎn)歷的 word 文檔,接下來(lái)我們要將讀取到的內(nèi)容通過(guò)帥選關(guān)鍵字信息的方式,過(guò)濾出包含有關(guān)鍵字的簡(jiǎn)歷。

實(shí)操案例腳本如下:

# coding:utf-8

import glob

from docx import Document

class ReadDoc(object):              # 定義一個(gè) ReadDoc ,用以讀取 word 文件
    def __init__(self, path):       # 構(gòu)造函數(shù)默認(rèn)傳入讀取 word 文件的路徑
        self.doc = Document(path)
        self.p_text = ''
        self.table_text = ''

        self.get_para()
        self.get_table()

    def get_para(self):             # 定義 get_para 函數(shù)用以讀取 word 文件的段落
        for p in self.doc.paragraphs:
            self.p_text += p.text + '\n'    # 讀取的段落內(nèi)容進(jìn)行換行
        # print(self.p_text)        # 調(diào)試打印輸出 word 文件的段落內(nèi)容

    def get_table(self):            # 定義 get_table 函數(shù)循環(huán)讀取表格內(nèi)容
        for table in self.doc.tables:
            for row in table.rows:
                _cell_str = ''      # 獲取每一行的完整信息
                for cell in row.cells:
                    _cell_str += cell.text + ','    # 每一行加一個(gè) "," 隔開(kāi)
                self.table_text += _cell_str + '\n'     # 讀取的表格內(nèi)容進(jìn)行換行
        # print(self.table_text)    # 調(diào)試打印輸出 word 文件的表格內(nèi)容


def search_word(path, targets):     # 定義 search_word 用以篩選符合內(nèi)容的簡(jiǎn)歷;傳入 path 與 targets(targets 為列表)
    result = glob.glob(path)
    final_result = []               # 定義一個(gè)空列表,用以后續(xù)存儲(chǔ)文件的信息

    for i in result:             # for 循環(huán)獲取 result 內(nèi)容

        isuse = True                # 是否可用

        if glob.os.path.isfile(i):       # 判斷是否是文件
            if i.endswith('.docx'):      # 判斷文件后綴是否是 "docx" ,若是,則利用 ReadDoc類(lèi) 實(shí)例化該文件對(duì)象
                doc = ReadDoc(i)
                p_text = doc.p_text         # 獲取 word 文件內(nèi)容
                table_text = doc.table_text
                all_text = p_text + table_text

                for target in targets:      # for 循環(huán)判斷關(guān)鍵字信息內(nèi)容是否存在
                    if target not in all_text:
                        isuse = False
                        break

                if not isuse:
                    continue
                final_result.append(i)
    return final_result

if __name__ == '__main__':
    path = glob.os.path.join(glob.os.getcwd(), '*')
    result = search_word(path, ['python', 'golang', 'react', '埋點(diǎn)'])      # 埋點(diǎn)是為了演示效果,故意在 "簡(jiǎn)歷1.docx" 加上的
    print(result)

運(yùn)行結(jié)果如下:

到此這篇關(guān)于Python Word文件自動(dòng)化實(shí)戰(zhàn)之簡(jiǎn)歷篩選的文章就介紹到這了,更多相關(guān)Python簡(jiǎn)歷篩選內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過(guò)Python實(shí)現(xiàn)一個(gè)A/B測(cè)試詳解

    通過(guò)Python實(shí)現(xiàn)一個(gè)A/B測(cè)試詳解

    A/B測(cè)試,通過(guò)分析兩種不同的營(yíng)銷(xiāo)策略,以此來(lái)選擇最佳的營(yíng)銷(xiāo)策略,可以高效地將流量轉(zhuǎn)化為銷(xiāo)售額。本文主要介紹了如何通過(guò)Python實(shí)現(xiàn)一個(gè)A/B測(cè)試,感興趣的可以了解一下
    2023-01-01
  • Python手寫(xiě)回歸樹(shù)的實(shí)現(xiàn)

    Python手寫(xiě)回歸樹(shù)的實(shí)現(xiàn)

    本文主要介紹了Python手寫(xiě)回歸樹(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法

    Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法

    這篇文章主要介紹了Python語(yǔ)言描述機(jī)器學(xué)習(xí)之Logistic回歸算法,涉及Sigmoid函數(shù),梯度上升法等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 使用Python實(shí)現(xiàn)屏幕截圖的兩種方法

    使用Python實(shí)現(xiàn)屏幕截圖的兩種方法

    Python作為一種高效的編程語(yǔ)言,可以通過(guò)一些庫(kù)來(lái)實(shí)現(xiàn)對(duì)屏幕的截圖操作,本文主要介紹了使用Python實(shí)現(xiàn)屏幕截圖的兩種方法,具有一定的 參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • python實(shí)現(xiàn)發(fā)送郵件及附件功能

    python實(shí)現(xiàn)發(fā)送郵件及附件功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送郵件及附件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

    使用qt quick-ListView仿微信好友列表和聊天列表的示例代碼

    本文以微信好友列表為例給大家學(xué)習(xí)listview的相關(guān)知識(shí),通過(guò)實(shí)例demo給大家詳解qt quick-ListView仿微信好友列表和聊天列表的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2021-06-06
  • python爬取51job中hr的郵箱

    python爬取51job中hr的郵箱

    這篇文章主要為大家詳細(xì)介紹了python爬取51job中hr的郵箱的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • 解決一個(gè)pandas執(zhí)行模糊查詢sql的坑

    解決一個(gè)pandas執(zhí)行模糊查詢sql的坑

    這篇文章主要介紹了解決一個(gè)pandas執(zhí)行模糊查詢sql的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 在Python3 numpy中mean和average的區(qū)別詳解

    在Python3 numpy中mean和average的區(qū)別詳解

    今天小編就為大家分享一篇在Python3 numpy中mean和average的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)

    python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)

    這篇文章主要為大家介紹了python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評(píng)論