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 для этого, это слишком хрупко.