91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 使用python批量讀取word文檔并整理關鍵信息到excel表格的實例

使用python批量讀取word文檔并整理關鍵信息到excel表格的實例

發布時間:2020-10-02 13:17:23 來源:腳本之家 閱讀:378 作者:sheldonxxd 欄目:開發技術

目標

最近實驗室里成立了一個計算機興趣小組

倡議大家多把自己解決問題的經驗記錄并分享

就像在CSDN寫博客一樣

雖然剛剛起步

但考慮到后面此類經驗記錄的資料會越來越多

所以一開始就要做好模板設計(如下所示)

使用python批量讀取word文檔并整理關鍵信息到excel表格的實例

方便后面建立電子數據庫

從而使得其他人可以迅速地搜索到相關記錄

據說“人生苦短,我用python”

所以決定用python從docx文檔中提取文件頭的信息

然后把信息更新到一個xls電子表格中,像下面這樣(直接po結果好了)

使用python批量讀取word文檔并整理關鍵信息到excel表格的實例

而且點擊文件路徑可以直接打開對應的文件(含超鏈接)

使用python批量讀取word文檔并整理關鍵信息到excel表格的實例

代碼實現

1. 采集docx里面文件頭信息

# -*- coding:utf-8 -*-
 
# 此程序可掃描Log中的docx文件并返回基本信息
 
import docx
from docx import Document
 
test_d = '../log/sublime搭建python的集成開發環境.docx'
 
def docxInfo(addr):
 document = Document(addr)
 
 info = {'title':[],
 'keywords':[],
 'author':[],
 'date':[],
 'question':[]}
 
 lines = [0 for i in range(len(document.paragraphs))]
 k = 0
 for paragraph in document.paragraphs:
 lines[k] = paragraph.text
 k = k+1
 
 index = [0 for i in range(5)]
 k = 0
 for line in lines:
 if line.startswith('標題'):
 index[0] = k
 if line.startswith('關鍵詞'):
 index[1] = k
 if line.startswith('作者'):
 index[2] = k
 if line.startswith('日期'):
 index[3] = k
 if line.startswith('問題描述'):
 index[4] = k
 k = k+1
 
 info['title'] = lines[index[0]+1]
 
 keywords = []
 for line in lines[index[1]+1:index[2]]:
 keywords.append(line)
 info['keywords'] = keywords
 
 info['author'] = lines[index[2]+1]
 
 info['date'] = lines[index[3]+1]
 
 info['question'] = lines[index[4]+1]
 
 return info
 
if __name__ == '__main__':
 print(docxInfo(test_d))

2. 遍歷log文件夾,進行信息更新

# -*- coding:utf-8 -*-
 
# 此程序可以批量掃描log中的文件,如果碰到docx文檔,
# 則調用readfile()提取文檔信息,并將信息保存到digger
# 日志列表.xls之中,方便后期快速檢索
 
import os,datetime
import time
import xlrd
from xlrd import xldate_as_tuple
import xlwt
from readfile import docxInfo
from xlutils.copy import copy
 
# 打開日志列表讀取最近一條記錄的更新日期
memo_d = '../log/digger日志列表.xls'
memo = xlrd.open_workbook(memo_d) #讀取excel
sheet0 = memo.sheet_by_index(0) #讀取第1張表
memo_date = sheet0.col_values(5) #讀取第5列
memo_n = len(memo_date) #去掉標題
if memo_n>0:
 xlsx_date = memo_date[memo_n-1] #讀取最后一條記錄的日期,
 latest_date = sheet0.cell_value(memo_n-1,5)
 # 返回時間戳
 
# 新建一個xlsx
memo_new = copy(memo)
sheet1 = memo_new.get_sheet(0)
 
# 重建超鏈接
hyperlinks = sheet0.col_values(6) # xlrd讀取的也是text,造成超鏈接丟失
k = 1
n_hyperlink = len(hyperlinks)
for k in range(n_hyperlink):
 link = 'HYPERLINK("%s";"%s")' %(hyperlinks[k],hyperlinks[k])
 sheet1.write(k,6,xlwt.Formula(link))
 k = k+1
 
 
# 判斷文件后綴
def endWith(s,*endstring):
 array = map(s.endswith,endstring)
 if True in array:
  return True
 else:
  return False
 
# 遍歷log文件夾并進行查詢
log_d = '../log'
logFiles = os.listdir(log_d)
for file in logFiles:
 if endWith(file,'.docx'):
 timestamp = os.path.getmtime(log_d+'/'+file)
 if timestamp>latest_date:
 info = docxInfo(log_d+'/'+file)
 sheet1.write(memo_n,0,info['title'])
 keywords_text = ','.join(info['keywords'])
 sheet1.write(memo_n,1,keywords_text)
 sheet1.write(memo_n,2,info['author'])
 sheet1.write(memo_n,3,info['date'])
 sheet1.write(memo_n,4,info['question'])
 #獲取當前時間
 time_now = time.time() #浮點值,精確到毫秒
 sheet1.write(memo_n,5, time_now)
 link = 'HYPERLINK("%s";"%s")' %(file,file)
 sheet1.write(memo_n,6,xlwt.Formula(link))
 memo_n = memo_n+1
os.remove(memo_d)
memo_new.save(memo_d)
print('memo was updated!')

其實還有一些操作電子表格更好的模塊,比如panda、xlsxwriter、openpyxl等。不過上述代碼已經基本能實現功能,而且科研狗畢竟沒那么多時間寫代碼做調試,所以后面有空再update吧!

致謝

在此過程中大量借鑒了CSDN論壇中各位大神的各種經驗!!!

以上這篇使用python批量讀取word文檔并整理關鍵信息到excel表格的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

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

AI

双桥区| 江安县| 烟台市| 视频| 连江县| 新昌县| 新营市| 云林县| 张家界市| 张家川| 昌江| 宜丰县| 庄浪县| 凉山| 兰坪| 华池县| 托克逊县| 玉山县| 乐清市| 鹤峰县| 太康县| 南乐县| 梅河口市| 黄浦区| 镶黄旗| 浦北县| 溧阳市| 文安县| 阳西县| 阿鲁科尔沁旗| 定远县| 台东县| 英山县| 马鞍山市| 广昌县| 霍城县| 鲁山县| 全州县| 高清| 菏泽市| 阆中市|