目标

最近实验室里成立了一个计算机兴趣小组

倡议大家多把自己解决问题的经验记录并分享

就像在CSDN写博客一样

虽然刚刚起步

但考虑到后面此类经验记录的资料会越来越多

所以一开始就要做好模板设计(如下所示)

方便后面建立电子数据库

从而使得其他人可以迅速地搜索到相关记录

据说“人生苦短,我用python”

所以决定用python从docx文档中提取文件头的信息

然后把信息更新到一个xls电子表格中,像下面这样(直接po结果好了)

而且点击文件路径可以直接打开对应的文件(含超链接)

代码实现

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博主「sheldonxxd」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/sheldonxxd/article/details/80544831

python批量提取word指定内容到excel_(转)用python批量读取word文档并整理关键信息到excel表格...相关推荐

  1. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

  2. 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  3. python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...

    轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...

  4. python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  5. python提取pdf文件内容_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  6. Python读取docx文档的内容

    Python读取docx文档的内容 下载好解析docx文档的包,Python-docx是专门针对于word文档的一个模块. doc.paragraphs 段落集合 doc.tables 表格集合 do ...

  7. Python读取.txt文档内容/读取text文件内容

    Python读取.txt文档内容/读取text文件内容; 读取txt后缀文件的内容的两种方式,简约易懂,复制粘贴即可食用,节约你宝贵的时间 文档全部数据一次性读取 # -*- coding: UTF- ...

  8. 数据导入与预处理-第4章-数据获取python读取pdf文档

    数据导入与预处理-第4章-数据获取Python读取PDF文档 1 PDF简介 1.1 pdf是什么 2 Python操作PDF 2.1 pdfplumber库 2.2 pdfplumber基本操作 2 ...

  9. Python/Django读取doc文档及在IIS8.5上部署所经历的波折及解决过程

    Tips(碰到的主要问题): doc转docx "无效的类的字符串" DCOM组件拒绝访问 NoneType has no attribute SaveAs 简要的业务过程:把Wo ...

最新文章

  1. input(position 1) must be Tensor, not NoneType
  2. Java HashMap 核心源码解读
  3. html页面高度设为自动,html – CSS:响应式布局中的高度自动问题
  4. python怎么读取中文文件-Python3 中文文件读写方法
  5. 机器人教室外墙_智慧教室解决方案-机器人创客教室布局设计
  6. 分享Web前端性能优化的实用技巧
  7. 阮一峰es6,Proxy和Reflect学习
  8. mcgscom口针脚定义_触摸屏制作的速成篇(MCGS入门篇)
  9. 数据清洗工具:OpenRefine的使用入坑DIY
  10. 科学计算机符号大全,计算机符号代码大全
  11. windows linux 共存,Windows与Linux共存
  12. 高通8953平台usb转以太网芯片ax88772驱动
  13. Unity Shader - 搬砖日志 - URP PBR (抄作业篇,持续更新~)
  14. python excel模板 生成excel表格_python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图...
  15. 分布式tensorflow测试代码
  16. RFID资产管理在学校固定资产管理中的应用,针对学校资产有效进行管理-新导智能
  17. 搭建私有云:owncloud(用Docker构建owncloud私有云盘)
  18. 如何创建并签署CAB文件
  19. html5如何快速选择工具,Photoshop教程:在PS中如何使用快速选择工具建立有效选区...
  20. 语音信号处理-第三方库:librosa、nnAudio、torchAudio三者的差异

热门文章

  1. 【量化投资】策略七(聚宽)
  2. 回溯法(深度优先搜索)
  3. linux必会命令 - 后台运行程序 - nohup、
  4. 2019-05-23 IRIS嗅探器;用IRIS嗅探数据;
  5. CKedit在线编辑器
  6. [转]oracle中查询指定行数的记录
  7. MySQL -A不预读数据库信息(use dbname 更快)
  8. webbrowser selstart selLength
  9. [Cocos2d-x For WP8]DrawPrimitives画图
  10. WebMisDeveloper4.2.0面世