Python - 在两个.doc文件之间移动整个文本

时间:2010-01-24 14:46:43

标签: python text .doc

我一直有这个问题并且无法想象我应该如何开始使用python执行此操作。我的操作系统是windows xp pro。我需要将整个(100%的文本)文本从一个.doc文件移动到另一个文件的脚本。但它听起来并不那么容易。目标.doc文件不是唯一的文件,但可以是其中许多文件。所有目标.doc文件始终位于同一文件夹(相同路径)中,但它们都没有相同的名称。我想移动整个文本的.doc文件只有一个,总是在同一个文件夹(相同的路径)中,并且始终具有相同的文件名。 目标的名称只是相似,但正如我之前所说,不一样。以下是整个脚本的要点: 目标.doc文件的名称为:

  

HD1.doc HD2.doc HD3.doc HD4.doc

等等

我想要的是将整个(但实际上所有文本,必须是100%全部)文本移动到具有最高(!)数字的.doc文件中。目标.doc文件将始终以“HD”开头,并且始终与上面的示例类似。 doc文件(目标文件)可能只有一个,因此只有HD1.doc。因此,''1'是最大数字,文本将移动到此文件中。 有时目标文件是空的,但通常不会。如果不是那么文本应该移动到文本的末尾,进入第一个新行(中间没有空行)。 因此,例如,在其名称中具有最大数量的目标文件中包含以下文本:

B'/ P>

C

在我想要移动文件的文件中:

d

这意味着我需要在目标文件中:

B'/ P>

C

d

但在任何地方都没有空行。

我找到了(显示三种不同的代码):

http://paste.pocoo.org/show/169309/

但他们都对我没有任何意义。我知道我需要从找到正确的目标文件开始(正确的HDX文件,其中X是最高的数字 - 所有高清文件都是,并且将在同一个文件夹中),但不知道如何做到这一点。

我指的是microsoft office word .doc文件。他们有“纯文本”。我对纯文本的意思是我也能在记事本(.txt)中看到它们。但我需要使用.doc扩展。 Python是因为我需要这个作为自动化系统,所以我甚至不需要打开任何文件。为什么exsactly python而不是任何其他编程语言?原因是因为最近我开始学习python并且需要这个脚本来完成我的工作 - Python是我唯一感兴趣的“唯一”编程语言,这就是为什么我想用它制作这个脚本。通过“真的100%”我的意思是整个文本(源文件中的所有内容 - 每一行,无论是否有2或数千)都将被移动到正确(哪一个是正确的,在我的第一篇文章中描述)目标文件。我无法移动整个文件,因为我需要移动整个文本(收集的所有内容 - 源文件将始终相同但文本的比赛将始终不同 - 行中的不同单词)而不是整个文件,因为我需要正确的文本。 doc文件具有正确的名称并且在一起(与“在一起”,我的意思是在同一个文件中)已经存在的文本IF目标文件中已有任何内容。因为正确的目标文件也可能是空的。

如果有人可以向我推荐任何东西,我会非常感激。

谢谢你,祝福。

我试图在openoffice论坛上提问,但他们没有回答。看到代码可能是这样的:

  from time import sleep
  import win32com.client
  from win32com.client import Dispatch   
  wordApp = win32com.client.Dispatch('Word.Application')
  wordApp.Visible=False
  wordApp.Documents.Open('C:\\test.doc')
  sleep(5)

  HD1 = wordApp.Documents.Open('C:\\test.doc') #HD1 word document as object.
  HD1.Content.Select.Copy() #Selects entire document and copies it. `

但我不知道这是什么意思。此外,我不能使用.doc文件,因为我永远不知道文件的正确文件名(HDX.doc,其中X是最大整数,所有HD在同一目录路径中)是什么,因此我不能使用它的名字 - 脚本应该找到正确的文件。另外''filename''= wordApp.Documents.open ...肯定会给我语法错误。 : - (

2 个答案:

答案 0 :(得分:3)

Openoffice附带完整的python脚本支持,看看:http://wiki.services.openoffice.org/wiki/Python

可能比试图使用MS Word和COM apis更容易。

答案 1 :(得分:1)

因此,您希望从doc文件中获取文本,并将其附加到另一个doc文件中的文本末尾。这里的问题是MS Word文件。它是一种专有格式,据我所知,没有模块可以从Python访问它们。

但是如果您使用的是Windows,则可以通过COM API访问它们,但这非常复杂。但请看一下。 Otehrwise我建议你不要我们MS Word文件。上面的声音听起来像是某种日志记录工具,使用Word文件听起来是个坏主意,它太脆弱了。