Учебник по Python: Легко конвертируйте DOCX в TXT и TXT в DOCX
Конвертация между DOCX (документы Word) и TXT (простые текстовые файлы) — это обычная задача в обработке документов, извлечении данных и автоматизации рабочих процессов. В этом посте блога мы рассмотрим, как конвертировать DOCX в TXT и TXT в DOCX, используя библиотеку Free Spire.Doc для Python .
Зачем конвертировать между DOCX и TXT?
DOCX файлы богаты форматированием и поддерживают различные функции, такие как изображения, стили и гиперссылки. Однако они могут быть громоздкими, когда вам нужен только простой текст для быстрых правок или извлечения данных. С другой стороны, TXT файлы лёгкие и универсально совместимы, но не имеют форматирования.
Конвертация между этими форматами предоставляет гибкость в обработке документов, позволяя вам:
Извлекать чистый текст из отформатированных документов
Превращать простой текст в профессионально оформленные документы
Упрощать рабочие процессы обработки документов
Предварительные требования
Перед тем, как погрузиться в код, убедитесь, что у вас есть следующее:
Установленный Python на вашем компьютере.
Библиотека Free Spire.Doc для Python . Вы можете установить её с помощью pip:
bashpip install spire.doc.free
Текстовый редактор или IDE для написания кода на Python.
Примерные файлы DOCX и TXT для тестирования.
Конвертация DOCX в TXT на Python
Следующий код читает документ Word (Sample.docx) и сохраняет его содержимое в качестве простого текстового файла (DocxToTxt.txt).
from spire.doc import *
from spire.doc.common import *
# Создать объект Document
document = Document()
# Загрузить файл docx
document.LoadFromFile("C:/Users/Administrator/Desktop/Sample.docx")
# Сохранить файл docx в формате txt
document.SaveToFile("DocxToTxt.txt", FileFormat.Txt)
document.Close()
В этом коде:
Создаётся объект Document для работы.
Метод LoadFromFile используется для загрузки файла DOCX из указанного пути.
Документ сохраняется в формате TXT с использованием метода SaveToFile.
Конвертация TXT в DOCX на Python
В зависимости от того, хотите ли вы применить форматирование программно, вы можете конвертировать текстовый файл (TXT) в файл DOCX, используя один из следующих двух методов:
Метод 1: Простое решение (без форматирования)
Этот базовый подход создаёт документ Word с содержимым TXT, но без специального форматирования.
from spire.doc import *
from spire.doc.common import *
# Создать объект Document
document = Document()
# Загрузить файл txt
document.LoadFromFile("C:/Users/Administrator/Desktop/Sample.txt")
# Сохранить файл txt как файл docx
document.SaveToFile("TxtToDocx.docx", FileFormat.Docx2016)
document.Close()
В этом коде:
Создаётся объект Document.
Файл TXT загружается с помощью метода LoadFromFile.
Документ затем сохраняется в формате DOCX.
Метод 2: Расширенное решение (с форматированием)
Для более профессиональных результатов вы можете применить форматирование во время конвертации:
from spire.doc import *
# Функция для форматирования textRange
defformat_textRange(textRange, font_name, font_size, color):
# Установить свойства шрифта
textRange.CharacterFormat.FontName = font_name
textRange.CharacterFormat.FontSize = font_size
textRange.CharacterFormat.TextColor = color
# Чтение файла TXT и разделение на абзацы
withopen("C:/Users/Administrator/Desktop/Sample.txt", "r") as file:
content = file.read()
# Разделение содержимого на абзацы с помощью пустых строк
paragraphs = content.split('\n\n')
# Создать новый объект Document
document = Document()
section = document.AddSection()
section.PageSetup.Margins.All = 40
# Обработка каждого абзаца и добавление его в документ
for idx, para inenumerate(paragraphs):
# Удалить пробелы и пропустить пустые абзацы
para = para.strip()
ifnot para:
continue
# Создать новый абзац в документе
new_paragraph = section.AddParagraph()
text_range = new_paragraph.AppendText(para)
# Применить разные форматы в зависимости от индекса абзаца
if idx % 2 == 0: # Пример: четные абзацы
format_textRange(text_range, font_name="Times New Roman", font_size=18, color=Color.get_Red())
else: # Нечётные абзацы
format_textRange(text_range, font_name="Times New Roman", font_size=13, color=Color.get_Blue())
# Добавить пустой абзац после каждого форматированного абзаца
section.AddParagraph()
# Сохранить документ как DOCX
document.SaveToFile("TxtToFormattedDocx.docx", FileFormat.Docx2016)
document.Dispose()
В этом коде:
Определена функция format_textRange для применения определённых свойств шрифта (название шрифта, размер и цвет) к объекту TextRange.
Файл TXT открывается, его содержимое читается и разделяется на абзацы на основе пустых строк.
Создаётся объект Document, и добавляется секция с указанными полями.
Каждый абзац обрабатывается, форматируется и добавляется в документ. Чётные абзацы оформляются красным цветом и большим размером, а нечётные — синим и меньшим размером.
Пустой абзац создаётся после каждого форматированного абзаца для улучшения читаемости.
Наконец, документ сохраняется как файл DOCX.
Заключение
В этом посте блога мы продемонстрировали, как конвертировать DOCX в TXT для извлечения содержимого обычного текста, что делает работу с текстовыми данными более удобной без отвлекающего форматирования.
Кроме того, мы показали, как конвертировать TXT в DOCX, предлагая как базовые, так и расширенные варианты форматирования для улучшения общего представления вашего текста.




