国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

如何用python整理附件

2020-02-23 00:06:17
字體:
供稿:網(wǎng)友

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

目標(biāo)

目前類似截圖中的word有600+,想簡(jiǎn)單的進(jìn)行整理:

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

具體實(shí)現(xiàn)

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

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

import xlsxwriterimport subprocessimport osimport docximport sysimport re

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

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

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

docx主要用來解析word文檔。

規(guī)范下文件名

首先我們先規(guī)范下文件名稱,因?yàn)樵谑褂胹ubprocess.call調(diào)用命令時(shí),空格,特殊符號(hào)之類的沒辦法轉(zhuǎn)義導(dǎo)致報(bào)錯(cuò),所以干脆在之前就清理掉這個(gè)潛在問題。

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))

遍歷文件

之后我們就可以開始正題,遍歷每個(gè)文件進(jìn)行解析:

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

這里碰到一個(gè)問題,首先是docx模塊無法解析doc的word文檔,由于又是使用的mac,所以也無法使用win32com模塊,這個(gè)問題就比較尷尬,后來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模塊很容易實(shí)現(xiàn),具體的解析邏輯就不貼了,就是遍歷每一行,根據(jù)一些關(guān)鍵字,符號(hào)來截取數(shù)據(jù)(每個(gè)簡(jiǎn)歷格式基本上差不多的)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丘北县| 宁夏| 靖江市| 洛浦县| 翁牛特旗| 昭觉县| 珲春市| 东兴市| 怀柔区| 博兴县| 长子县| 定州市| 乐至县| 岱山县| 北流市| 庐江县| 雷州市| 咸宁市| 高安市| 普兰店市| 望城县| 扎鲁特旗| 三原县| 临澧县| 鞍山市| 马尔康县| 淮北市| 平罗县| 陇川县| 乌审旗| 黔江区| 体育| 彭阳县| 林周县| 高安市| 丹凤县| 西丰县| 宁德市| 城口县| 阿尔山市| 浏阳市|