type
status
date
slug
summary
tags
category
icon
password
使用python处理word时遇到一个逆天文件,使用python-docx无法处理,再使用win32com同样,最后思路为zipfile解压缩读取xml,居然也不能识别
看文件对比,word使用通用模板,解压缩后的文件为

其中xml为通用的文本模板,存储文本内容
而我需要处理的word文件,解压后的文件

都是无文件类型的文件,但是把WordDocument作为文本文档打开,可以发现在乱码中有文本

现在的思路为,把需要处理的docx文档后缀更改为zip,保留其中的WordDocument作为txt文本文档进行读取,使用正则表达式提取ip地址,删除其余乱码
在进行python读取文本时,发现utf-8等编码都无法读取文本
找到一个技巧,使用chardet库读取文本信息

可以看到编码为MacRoman??666
此时的zip是通过手动更改后缀名提取的,在使用python的zip模块,仍无法识别。
换思路为,把docx直接更改为txt。查看二进制中是否存在需要的信息。
通过识别编码格式,可以看到和上边相同的效果。
再想办法在乱码中提取所需的文字。

此时的思路为,使用正则表达式,删除文字间的空格,把ip提出(此时过程浪费两小时)
不理解为什么就是提不出来

然后发现这里tmd不是空格,是nul乱码,编码格式无法显示
使用正则把这些乱码进行删除后,成功提取出所需的文字
但是在进行批量处理时,还是有大量的失败的,最后进行筛查,有些内容较多的docx,改txt二进制查看是全部乱码,无法查看。
放弃了。。。
还是疑惑这种逆天docx到底是怎么来的,网上没有看到信息。希望知道的朋友给留言一下。