docx格式转txt格式

  • 先将doc格式转换为docx格式
  • 运用python-docx工具包来操作word文档
    • 乱码问题
    • 通过给定分隔符切分文段,并且保留分隔符

先将doc格式转换为docx格式

这里可以参考我的另一个博客: doc转docx.

def doc_to_docx(file_dir):docfiles = []for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] == '.doc':docfiles.append(os.path.join(root, file))word = wc.Dispatch("Word.Application")  # 打开word应用程序for docfile in docfiles:doc = word.Documents.Open(docfile)  # 打开word文件doc.SaveAs('{}x'.format(docfile), 12)  # 另存为后缀为".docx"的文件,其中参数12指docx文件doc.Close()  # 关闭原来word文件os.remove(docfile)word.Quit()print("完成!")

运用python-docx工具包来操作word文档

首先下载docx工具包,在命令行中输入pip install docx,就可以安装docx工具包。

接着,读取word文档里面的文本和表格内容(因为我暂时处理的主要是这两种格式,所以只探究了如何提取这两种格式文本的方法)。

from docx import Document #导入方法
document = Document(filename) #注意这里的filename必须是包含绝对路径的文件名# 读取每段资料
l = [paragraph.text.encode('utf-8') for paragraph in document.paragraphs]# 输出并观察结果,也可以通过其他手段处理文本即可
pattern = r'(。|!|?|;)'
for i in l:list = []seg = i.decode('utf-8')seg = re.split(pattern, seg)seg.append("")seg = ["".join(i) for i in zip(seg[0::2], seg[1::2])]
for word in seg:
# 读取表格材料,并输出结果
tables = [table for table in document.tables]
for table in tables:for row in table.rows:for cell in row.cells:print(cell.text.encode('utf-8').decode('utf-8'), '\t', )

乱码问题

最开始的时候,会出现一些乱码问题,上网查询了一下是编码问题,具体操作就是给定指定的编码格式utf-8,这里以后再去详细了解,我主要就靠着给含有文本的变量名定义decode(‘utf-8’)来使得编码成功解析出汉字(如果尝试的变量名没有decode后缀,可以先encode(‘utf-8’)再decode(‘utf-8’))例如代码里面的:

seg = i.decode('utf-8')
cell.text.encode('utf-8').decode('utf-8')

通过给定分隔符切分文段,并且保留分隔符

在提取文本时,我需要将大段的文本通过我要求的字符来切分成一句一句的句子,同时,需要保留分隔符在句尾。平常运用的split方法会直接将切分符号去掉,满足不了要求(这里,我没想到运用split方法能切分文段且保留标记的办法),网上找到了一个方法,特此记录学习一下。贴一下博客链接: 保留分隔符在句尾.

pattern = r'(。|!|?|;)'   #定义需要切割的分割符,加上()保留分隔符
seg = re.split(pattern, seg)   #通过split先进行切分
seg.append("")
seg = ["".join(i) for i in zip(seg[0::2], seg[1::2])]

写进txt文件里面

 output = open(filename, 'w', encoding='utf-8')for sentence in seg:output.write(sentence + '\n')

把docx格式的word文档转换为txt文件相关推荐

  1. springboot结合Freemarker模板生成docx格式的word文档(附代码)

    首先参考的是这篇文章: java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园参考:https://my.oschina.net/u/3737136/blo ...

  2. Django在线预览docx格式的word文档

    Django在线预览docx格式的word文档 第一步 明确功能是:预览word的docx文件. 具体实现是:在Django的模板文件中,定义预览方法:read_word2html from pydo ...

  3. java利用Freemarker模板生成docx格式的word文档(全过程)

    参考汇总: wordexport: JAVA生成并导出Word文档技术论证 java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园 # 参考资料 - 其他项 ...

  4. 将Word文档转换为PDF文件的步骤和技巧

    在日常工作和学习中,我们经常需要将Word文档转换为PDF文件.PDF文件的格式稳定.排版精美.易于共享等特点使其成为了许多场合下的首选文件格式.在本文中,我将为大家介绍将Word文档转换为PDF文件 ...

  5. java生成docx_java利用Freemarker模板生成docx格式的word文档

    之前写过一篇利用Freemarker模板生成doc的博客,不过那个博客有点缺陷,生成的word占用的空间很大,几百页的word有将近100M了.所以,后面需求必须是生成的docx文档,结果导出后正常才 ...

  6. linux下poi把word转图片,我需要将Apache POI图片从Word文档转换为html文件

    我有一些代码使用Java Apache POI库打开一个Microsoft Word文档,并使用Apache POI将其转换为html,它还会获取文档上图像的字节数组数据.但是我需要将此信息转换为ht ...

  7. 如何批量将 Doc 格式的 Word 文档转为 Docx 格式

    概要:我们都知道 Word 格式有多种.比如常见的有 Doc.Docx,这两种类型是能够相互兼容的,也是能够相互转化的.那今天给大家介绍的是如何将多个 Doc 格式文档批量转为 Docx 格式. 我们 ...

  8. java doc转图片_Java 将word文档转换为PNG、XPS、RTF等格式

    在日常办公中,Word是一种很好的文档排版工具.在Word创建好文档后, 我们常常需要将其保存为PDF.图片或其他格式.本文就将通过使用Java程序来演示如何将Word文档转换为PNG.XPS.RTF ...

  9. 【软件操作】Office将Word文档转换为PDF格式

    一.问题描述 PDF格式(Portable Document Format)相比于Word文档(.doc/.docx格式)体积更大,但具有更好的文档一致性(减少排版问题),修改更困难(不易被外界篡改) ...

  10. Java 将 Word 文档转换为 PDF 的完美工具

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:为什么魂斗罗只有 128 KB却可以实现那么长的剧情?个人原创+1博客:点击前往,查看更多 来源:https:/ ...

最新文章

  1. 表达式树 java_表达树—构建表达式树、获取表达式(二)
  2. Spring3MVC+Mybatis3.1框架下的事务
  3. 粤东农批项目座谈会 农业大健康·李喜贵:功能性农业差异化加工
  4. 【数据结构与算法】之深入解析“零钱兑换”的求解思路与算法示例
  5. 九个Console命令,让 JS 调试更简单
  6. 彩虹云任务极致精简版--PHPcron程序
  7. 使用scp从远程服务器下载文件到本地
  8. Iostream通用输入/输出流类
  9. hdu 6184 三元环数目
  10. 2、sudo时候出现no valid sudoers sources found, quitting
  11. 体系切换,华为IPD的研发管理之道(上)
  12. 【机器学习】算法 之 决策树
  13. phpwind mysql 密码_PhpWind教程:MySQL数据库密码修改方法
  14. 电脑录屏怎么把声音录进去,两招教你把声音录进去
  15. 解读Datasheet系列:W25Q80DV(华邦 SPI Flash)
  16. 智能制造 | AIRIOT智慧工厂管理解决方案
  17. 百度webgis-api-显示中国地图02
  18. 190617 逆向-神盾杯(Reverse)
  19. 315,谁来保护手游开发者的利益
  20. java flyway_Flyway详解以及Springboot集成Flyway(转)

热门文章

  1. 【蓝桥杯历年题】2020蓝桥杯A组省赛第二场(10.17)【含蓝桥杯官网提交地址】
  2. foobar 2000|foobar2000中文版32/64位下载 v1.3.16
  3. java session超时判断_详解SpringBoot中Session超时原理说明
  4. c语言dp算法解决背包问题,DP求解完全背包问题及其优化原理
  5. 熊猫源码(不是很全,大体框架是有的)小时候一直想做的一个东西哈哈哈
  6. php编程最快明白第四讲,《PHP编程最快明白》第八讲:php启发和小结_php基
  7. 华硕触摸板驱动ASUS PTP Driver安装失败解决办法
  8. 小米Android 4.3.1刷机包,终于来了:小米4 Win10刷机包下载!附刷机教程
  9. 嘻哈电音综合插件-Digikitz Linked Linked Vibes Workstation WiN-MAC
  10. DirectX截图黑屏的解决办法