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

如何用python整理附件

 更新時間:2018年05月13日 14:21:09   作者:Bug生活2048  
本篇文章給大家整理了關(guān)于如何用python整理附件的相關(guān)知識點,學習python的朋友可以跟著測試下。

目前我的文件夾中有500多份簡歷,如果我想知道一些信息,比如學校,學歷之類的,我需要打開每一份word去查看,太耗時間了。這個時候python需要出馬了。

目標

目前類似截圖中的word有600+,想簡單的進行整理:

可以整理出一份excel用于導(dǎo)航(類似目錄),可以通過excel來快速定位到所要的附件,如下圖效果:

具體實現(xiàn)

有了目標,就具體說說如何實現(xiàn)的,整理思路還是比較簡單的,就是遍歷所有的word文件,將word中關(guān)鍵的信息獲取到并保存到excel中。

這里列下主要用到的模塊:

import xlsxwriter
import subprocess
import os
import docx
import sys
import re

xlsxwriter主要用來操作excel,xlsxwriter只能用來寫,效率上比xlwt要高,數(shù)據(jù)量不多,用xlwt也ok。

subprocess主要用來調(diào)用命令行,因為docx模塊無法解析doc的word文件,所以在解析前將doc的文件轉(zhuǎn)換成docx文件。

os主要用于遍歷文件夾獲取文件。

docx主要用來解析word文檔。

規(guī)范下文件名

首先我們先規(guī)范下文件名稱,因為在使用subprocess.call調(diào)用命令時,空格,特殊符號之類的沒辦法轉(zhuǎn)義導(dǎo)致報錯,所以干脆在之前就清理掉這個潛在問題。

def remove_doc_special_tag():
  for filename in os.listdir(path):
    otherName = re.sub("[\s+\!\/_,$%^*(+\"\')]+|[+——()?【】“”!,。?、~@#¥%……&*()]+", "",filename) 
    os.rename(os.path.join(path,filename),os.path.join(path,otherName))

遍歷文件

之后我們就可以開始正題,遍歷每個文件進行解析:

path='/Users/cavin/Desktop/files'
for filename in os.listdir(path):
  ...具體邏輯...

這里碰到一個問題,首先是docx模塊無法解析doc的word文檔,由于又是使用的mac,所以也無法使用win32com模塊,這個問題就比較尷尬,后來google發(fā)現(xiàn)可以通過命令將doc轉(zhuǎn)換成docx。

這里注意下轉(zhuǎn)換后的docx文件樣式是丟失的,但這不影響我獲取文本信息。

于是就有了這段代碼,如果是doc的文件,優(yōu)先轉(zhuǎn)換成docx,待解析完之后再移除掉。

if filename.endswith('.doc'):
  subprocess.call('textutil -convert docx {0}'.format(fullname),shell=True)
  fullname=fullname[:-4]+".docx"
  sheetModel= etl_word_files(fullname)#解析文本邏輯
  subprocess.call('rm {0}'.format(fullname),shell=True) #移除轉(zhuǎn)換的文件

解析word文件

接下來就是解析文件了,通過docx模塊很容易實現(xiàn),具體的解析邏輯就不貼了,就是遍歷每一行,根據(jù)一些關(guān)鍵字,符號來截取數(shù)據(jù)(每個簡歷格式基本上差不多的)

doc = docx.Document(fullname)
for para in doc.paragraphs:
  print(para.text)
  ...具體解析邏輯...

填充excel

解析完的數(shù)據(jù)就可以直接填充excel了:

workbook = xlsxwriter.Workbook('report_list.xlsx')
worksheet = workbook.add_worksheet('list')
worksheet.write(0,0, '序號') 
worksheet.write(0,1, '姓名') 
worksheet.write(0,2, '性別') 
worksheet.write(0,3, '年齡') 
worksheet.write(0,4, '籍貫') 
worksheet.write(0,5, '目前所在地') 
worksheet.write(0,6, '學歷')
worksheet.write(0,7, '學校')
worksheet.write(0,8, '公司')
worksheet.write(0,9, '職位')
worksheet.write(0,10, '文檔鏈接')

這里主要說下文檔鏈接的填充,由于是要給其他人的,只要保證附件和excel在同一個文件夾下,采用相對路徑的方式來實現(xiàn),可以使用Excel的函數(shù)HYPERLINK:

worksheet.write(index,10, '=HYPERLINK(\"./'+filename+'\",\"附件\")')

問題點

到這里,基本上可以實現(xiàn)相應(yīng)的功能了,但不是很完美,主要是word中的格式不標準,沒有很好的方式去準確獲取到我要的數(shù)據(jù),但主要的姓名學校之類的大多數(shù)都抓到了,也算減輕點任務(wù)啦。

總結(jié)

利用python還是減少了一定的重復(fù)勞動,但面對一些不標準的東東貌似還沒有很好的方式。

雖然可以增加邏輯來兼容這些不標準,但顯然這個付出和產(chǎn)出就有點不成正比了。

利用好手上的工具去提高效率才是真的,至于是傻瓜式的重復(fù)工作,還是通過代碼來減少重復(fù)勞動,就看你自己怎么看啦。

相關(guān)文章

  • Python 解析簡單的XML數(shù)據(jù)

    Python 解析簡單的XML數(shù)據(jù)

    這篇文章主要介紹了Python 如何解析簡單的XML數(shù)據(jù),文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Python Loguru日志封裝裝飾器實現(xiàn)過程

    Python Loguru日志封裝裝飾器實現(xiàn)過程

    這篇文章主要介紹了Python Loguru日志封裝裝飾器實現(xiàn)過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • Python Pandas對缺失值的處理方法

    Python Pandas對缺失值的處理方法

    這篇文章主要給大家介紹了關(guān)于Python Pandas對缺失值的處理方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python Pandas具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • python實現(xiàn)不同文件夾下的函數(shù)相互調(diào)用

    python實現(xiàn)不同文件夾下的函數(shù)相互調(diào)用

    這篇文章主要介紹了python實現(xiàn)不同文件夾下的函數(shù)相互調(diào)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python+ChatGPT實現(xiàn)5分鐘快速上手編程

    Python+ChatGPT實現(xiàn)5分鐘快速上手編程

    最近一段時間chatGPT火爆出圈!無論是在互聯(lián)網(wǎng)行業(yè),還是其他各行業(yè)都賺足了話題。俗話說:“外行看笑話,內(nèi)行看門道”,今天從chatGPT個人體驗感受以及如何用的角度來分享一下
    2023-02-02
  • Python條件語句與循環(huán)語句

    Python條件語句與循環(huán)語句

    這篇文章主要介紹了Python條件語句與循環(huán)語句,條件語句就是通過指定的表達式的運行結(jié)果來判斷當前是執(zhí)行還是跳過某些指定的語句塊,循環(huán)語句就是對某些語句的重復(fù)執(zhí)行,這個重復(fù)執(zhí)行是通過指定表達式來控制的,下面來看具體內(nèi)容及續(xù)航管案例吧,需要的朋友可以參考一下
    2021-11-11
  • pandas刪除重復(fù)數(shù)據(jù)簡單方法

    pandas刪除重復(fù)數(shù)據(jù)簡單方法

    這篇文章主要給大家介紹了關(guān)于pandas刪除重復(fù)數(shù)據(jù)的簡單方法,在數(shù)據(jù)處理過程中常常會遇到重復(fù)的問題,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Python virtualenv虛擬環(huán)境實現(xiàn)過程解析

    Python virtualenv虛擬環(huán)境實現(xiàn)過程解析

    這篇文章主要介紹了Python virtualenv虛擬環(huán)境實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • python使用jieba實現(xiàn)中文分詞去停用詞方法示例

    python使用jieba實現(xiàn)中文分詞去停用詞方法示例

    jieba分詞,完全開源,有集成的python庫,簡單易用。下面這篇文章主要給大家介紹了關(guān)于python使用jieba實現(xiàn)中文分詞去停用詞的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-03-03
  • 基于Python實現(xiàn)文件大小輸出

    基于Python實現(xiàn)文件大小輸出

    在數(shù)據(jù)庫中存儲時,使用 Bytes 更精確,可擴展性和靈活性都很高。下面通過本文給大家介紹基于Python實現(xiàn)文件大小輸出,對python文件輸出相關(guān)知識感興趣的朋友一起學習吧
    2016-01-01

最新評論