Python - перемещение всего текста между двумя файлами.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" - это максимальное число, и текст перемещается в этот файл. Иногда целевой файл пуст, но обычно не будет. Если этого не произойдет, то текст должен быть перемещен в конец текста, в первую новую строку (без пустых строк между ними). Так, например, в целевом файле с максимальным номером в названии есть следующий текст:

б

с

В файле, из которого я хочу переместить текст:

d

Это означает, что мне нужно в целевой файл это:

б

с

d

Но нигде нет пустых строк.

Я нашел (показывая три разных кода):

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

Но ни один из них не имеет никакого смысла для меня. Я знаю, что мне нужно было бы начать с поиска правильного целевого файла (правильный файл HDX, где X - наибольшее число - снова все файлы HD находятся и будут в одной папке), но не знаю, как это сделать.

Я имел в виду файлы Microsoft Office Word. DOC. У них есть "чистый текст". Под чистым текстом я имею в виду, что я также могу видеть их в блокноте (.txt). Но мне нужно работать с расширениями.doc. Это потому, что Python мне нужен как автоматизированная система, поэтому мне даже не нужно открывать какой-либо файл. Почему именно Python, а не какой-либо другой язык программирования? Причина этого в том, что недавно я начал изучать python и мне нужен этот скрипт для моей работы - Python - это "единственный" язык программирования, который мне интересен, и поэтому я хотел бы сделать этот скрипт с ним. Под "действительно 100%" я имел в виду, что весь текст (все в исходном файле - каждая строка, независимо от того, есть ли 2 или несколько тысяч) будет перемещен в правильный (целевой файл описан в моем первом посте) целевой файл, Я не могу переместить весь файл, потому что мне нужно переместить весь текст (все собрано - исходный файл будет всегда одинаковым, но состязание текста всегда будет отличаться - разные слова в строках), а не весь файл, потому что мне нужен правильный текст. файл документа с правильным именем и вместе (под словом "вместе" я имею в виду внутри одного и того же файла) с уже существующим текстом, если в целевом файле уже есть что-нибудь. Поскольку возможно, что правильный целевой файл также пуст.

Если бы кто-то мог предложить мне что-нибудь, я был бы очень признателен.

Спасибо, наилучшие пожелания.

Я пытался спросить на форуме 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 ответа

Openoffice поставляется с полной поддержкой сценариев Python, посмотрите: http://wiki.services.openoffice.org/wiki/Python

Это может быть проще, чем пытаться возиться с MS Word и COM apis.

Итак, вы хотите взять текст из файла документа и добавить его в конец текста в другом файле документа. И проблема здесь в том, что это файлы MS Word. Это проприетарный формат, и, насколько я знаю, нет модуля для доступа к ним из Python.

Но если вы работаете в Windows, вы можете получить к ним доступ через COM API, но это довольно сложно. Но посмотрите на это. В противном случае я рекомендую не использовать файлы MS Word. Вышеуказанное звучит как своего рода средство ведения журнала, и это звучит как плохая идея использовать файлы Word для этого, это слишком хрупко.

Другие вопросы по тегам