溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Python實現自動化篩選簡歷

發(fā)布時間:2022-06-08 09:32:23 來源:億速云 閱讀:328 作者:iii 欄目:編程語言

本篇內容介紹了“怎么使用Python實現自動化篩選簡歷”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

怎么使用Python實現自動化篩選簡歷

簡歷篩選

簡歷相關信息如下:


怎么使用Python實現自動化篩選簡歷


定義 ReadDoc 類用以讀取 word 文件

已知條件:

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


實現思路:

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


這里有個需要注意的地方就是,并不是所有的 "簡歷" 都是以段落的形式呈現的,比如從 "獵聘" 網下載下來的簡歷就是 "表格形式" 的,而 "boss" 上下載的簡歷就是 "段落形式" 的,這里再進行讀取的時候需要注意下,我們做的演示腳本練習就是 "表格形式" 的。


這里的話,我們就可以專門定義一個 "ReadDoc" 的類,里面定義兩個函數,分別用于讀取 "段落" 和 "表格" 。

實操案例腳本如下:

# coding:utf-8from docx import Documentclass ReadDoc(object):              # 定義一個 ReadDoc ,用以讀取 word 文件
    def __init__(self, path):       # 構造函數默認傳入讀取 word 文件的路徑
        self.doc = Document(path)
        self.p_text = ''
        self.table_text = ''

        self.get_para()
        self.get_table()


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


    def get_table(self):            # 定義 get_table 函數循環(huán)讀取表格內容
        for table in self.doc.tables:
            for row in table.rows:
                _cell_str = ''      # 獲取每一行的完整信息
                for cell in row.cells:
                    _cell_str += cell.text + ','    # 每一行加一個 "," 隔開
                self.table_text += _cell_str + '\n'     # 讀取的表格內容進行換行
        print(self.table_text)if __name__ == '__main__':
    path = glob.os.path.join(glob.os.getcwd(), 'test_file/簡歷1.docx')
    doc = ReadDoc(path)
    print(doc)

看一下 ReadDoc 類的運行結果


怎么使用Python實現自動化篩選簡歷


定義 search_word 函數用以篩選 word 文件內容符合想要的簡歷

OK,上文已經成功讀取了簡歷的 word 文檔,接下來我們要將讀取到的內容通過帥選關鍵字信息的方式,過濾出包含有關鍵字的簡歷。

實操案例腳本如下:

# coding:utf-8import globfrom docx import Documentclass ReadDoc(object):              # 定義一個 ReadDoc ,用以讀取 word 文件
    def __init__(self, path):       # 構造函數默認傳入讀取 word 文件的路徑
        self.doc = Document(path)
        self.p_text = ''
        self.table_text = ''

        self.get_para()
        self.get_table()


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


    def get_table(self):            # 定義 get_table 函數循環(huán)讀取表格內容
        for table in self.doc.tables:
            for row in table.rows:
                _cell_str = ''      # 獲取每一行的完整信息
                for cell in row.cells:
                    _cell_str += cell.text + ','    # 每一行加一個 "," 隔開
                self.table_text += _cell_str + '\n'     # 讀取的表格內容進行換行
        # print(self.table_text)    # 調試打印輸出 word 文件的表格內容def search_word(path, targets):     # 定義 search_word 用以篩選符合內容的簡歷;傳入 path 與 targets(targets 為列表)
    result = glob.glob(path)
    final_result = []               # 定義一個空列表,用以后續(xù)存儲文件的信息

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

        isuse = True                # 是否可用

        if glob.os.path.isfile(i):       # 判斷是否是文件
            if i.endswith('.docx'):      # 判斷文件后綴是否是 "docx" ,若是,則利用 ReadDoc類 實例化該文件對象
                doc = ReadDoc(i)
                p_text = doc.p_text         # 獲取 word 文件內容
                table_text = doc.table_text
                all_text = p_text + table_text                for target in targets:      # for 循環(huán)判斷關鍵字信息內容是否存在
                    if target not in all_text:
                        isuse = False
                        break

                if not isuse:
                    continue
                final_result.append(i)
    return final_resultif __name__ == '__main__':
    path = glob.os.path.join(glob.os.getcwd(), '*')
    result = search_word(path, ['python', 'golang', 'react', '埋點'])      # 埋點是為了演示效果,故意在 "簡歷1.docx" 加上的
    print(result)

運行結果如下:


怎么使用Python實現自動化篩選簡歷

“怎么使用Python實現自動化篩選簡歷”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI