Я пытаюсь скопировать содержимое файла слова в список, к которому я смогу получить доступ позже, чтобы вставить его в новый файл слова.Проще говоря, я пытаюсь использовать функцию, которая выполняет копирование и вставку выделения из документа Word одновременно.Проблема, с которой я сталкиваюсь, заключается в пустых «линиях» / промежутках между разделами.Этот интервал важен для макета документа.Я могу скопировать строки, которые содержат объекты и числа, но когда дело доходит до пустой строки.Выкладывает ошибку.
Я искал решение на этом и других форумах и не нашел ничего, имеющего отношение к этой конкретной проблеме
import tkinter as tk
from tkinter.filedialog import askopenfilename
from docx import Document # Invokes Document command from docx
def get_para_data(output_doc_name, paragraph):
"""
Write the run to the new file and then set its font, bold, alignment,
color etc. data.
"""
output_para = output_doc_name.add_paragraph()
for run in paragraph.runs:
output_run = output_para.add_run(run.text)
# Run's bold data
output_run.bold = run.bold
# Run's italic data
output_run.italic = run.italic
# Run's underline data
output_run.underline = run.underline
# Run's color data
output_run.font.color.rgb = run.font.color.rgb
# Run's font data
output_run.style.name = run.style.name
# Paragraph's alignment data
output_para.paragraph_format.alignment =
paragraph.paragraph_format.alignment
return output_run
n = 4
# IMPORT WORD DOCUMENT
root = tk.Tk()
root.withdraw()
doc_path = askopenfilename(title="Choose Word File") # returns the file
path as variable for future use
document = Document(doc_path) # Imports Word Document to Modify
t = len(document.paragraphs) # gives the number of lines in document
print('Total Number of lines =', t) # this is a check for now
result = Document()
output_paragraph = [None]*t
i = 0
for para in document.paragraphs:
output_paragraph[i] = get_para_data(result, document.paragraphs[i])
i += 1
Первая итерация проходит отлично, но как только мы получаемко второй итерации и пустой строке вылетает и выдает несколько ошибок.
Traceback (последний вызов был последним): файл "C: \ Program Files \ JetBrains \ PyCharm Community Edition 2018.3.2 \ helpers \ pydev \ pydevd.py", строка 1741, в main ()
Файл "C: \ Program Files \ JetBrains \ PyCharm Community Edition 2018.3.2 \ helpers \ pydev \ pydevd.py", строка 1735, в main globals = debugger.run (setup ['file'],Нет, нет, is_module)
Файл "C: \ Program Files \ JetBrains \ PyCharm Community Edition 2018.3.2 \ helpers \ pydev \ pydevd.py", строка 1135, в файле pydev_imports.execfile (файл, глобальные переменные), местные жители) # выполнить скрипт
Файл "C: \ Program Files \ JetBrains \ PyCharm Community Edition 2018.3.2 \ helpers \ pydev_pydev_imps_pydev_execfile.py", строка 18, в execfile exec (compile (contents + "\ n)", file, 'exec'), glob, loc)
Файл" C: /Users/SmithC113/PycharmProjects/ASCII_Word/point_creator.py ", строка 51, в output_para [i] = get_para_data (результат,document.paragraphs [i])
Файл "C: /Users/SmithC113/PycharmProjects/ASCII_Word/point_creator.py", строка 35,в get_para_data return output_run UnboundLocalError: локальная переменная 'output_run', на которую ссылается перед присваиванием