用olefile python库替换.doc文件中的文本

时间:2019-03-29 12:16:04

标签: python xls .doc

我正在使用python olefile库修改.xls和.doc文件。有趣的事实是,以下代码适用于.xls文件,但不适用于.doc文件。

以某种方式,.doc确实对内容进行了不同的编码/处理。在.xls中,当打印raw_content时,我看到许多奇怪的字节,但也有完整的单词。

在.doc文件中,我看到了更多的\x00,完整的单词就像每个字符之间有一个\x00

同样奇怪的是,olefile docs建议在链接的示例中这样做,甚至谈论单词。

file = open('my.doc', 'rb')
ole = olefile.OleFileIO(file.read())
raw_content = ole.openstream('WordDocument').read()
raw_content= raw_content.replace(
    b'a-placeholder',
    bytes(dynamic_value, 'utf-8')  # made sure they are the same length!
)
# this works!
# raw_content= raw_content.replace(
#     b'a',
#     b'Z'
# )
ole.write_stream('WordDocument', raw_content)
ole.fp.seek(0)
file_contents = ole.fp.read()
# further processing...

0 个答案:

没有答案