Python:将文本写入页面特定位置的2003 Word文档

Python:将文本写入页面特定位置的2003 Word文档,python,python-2.7,word-2003,Python,Python 2.7,Word 2003,我正在使用Python 2.7、Windows 7和Word 2003。这三个版本无法更改(除了python版本)。我从事法律工作,律师们大约有3个反对意见(只是一大块文字,可能有5段),需要在word文档中的特定位置插入。现在,我的想法是让用户在文档中添加一个在文档中任何地方都找不到的特殊单词/短语(如果您愿意,请使用placeholder),而不是在需要的地方查看、复制和粘贴反对意见。然后运行一些代码,让python填充其余部分。也许这不是最聪明的方法,但我是个笨蛋。我一直在练习一个测试页面

我正在使用Python 2.7、Windows 7和Word 2003。这三个版本无法更改(除了python版本)。我从事法律工作,律师们大约有3个反对意见(只是一大块文字,可能有5段),需要在word文档中的特定位置插入。现在,我的想法是让用户在文档中添加一个在文档中任何地方都找不到的特殊单词/短语(如果您愿意,请使用placeholder),而不是在需要的地方查看、复制和粘贴反对意见。然后运行一些代码,让python填充其余部分。也许这不是最聪明的方法,但我是个笨蛋。我一直在练习一个测试页面,并插入以下文本作为占位符(额外的“o”代表反对)

奥内

奥特沃

奥瑟瑞

以下是我到目前为止的情况。我有两个问题

  • 关于这件事,你还有其他建议吗
  • 我的代码确实按正确的顺序插入了字符串,但是格式会从窗口中消失,它会在字符串中写入6次而不是1次。如何解决格式问题,使其只需将文本写入占位符所在的位置

    import sys
    import fileinput
    f = open('work.doc', 'r+')
    obj1 = "oone"
    obj2 = "otwo"
    obj3 = "othree"
    for line in fileinput.input('work.doc'):
        if obj1 in line:
            f.write("Objection 1")
        elif obj2 in line:
            f.write("Objection 2")
        elif obj3 in line:
            f.write("Objection 3")
        else:
            f.write("No Objection")
    f.close
    

  • 您可以使用将文档加载到OpenOffice中,并使用UNO接口对其进行操作。我刚刚链接到的网站上有一些示例代码,可以帮助您开始使用。

    使用\n似乎有助于解决格式问题您不能直接写入.doc文件。它有复杂的结构。我可以用上面的代码来做,但不是我想要的,所以我不确定我在看什么,但谢谢。你不认为Python自己可以做到这一点吗?你至少需要使用一个库伙伴!