Docx Python - Читать построчно - PullRequest
0 голосов
/ 30 января 2020

У меня есть следующий текст в файле слов. Я пытаюсь читать текст построчно, проверять, является ли последнее слово дефисом, если это дефис, затем соединить последнее слово текущего предложения и первое слово предыдущее предложение без переноса ....

* Защита досрочного или предварительного ареста под залог не может быть ограничена каким-либо временем -

кадром или «фиксированным периодом», поскольку отказ в залоге составляет лишение основополагающего

психического права на личную свободу в свободной и демократической c стране, Консистенция Верховного суда, принятая в среду. *

результат ожидания: фундаментальная конституция таймфрейма

Python Docx имеет опции только для чтения всего абзаца, а не строк.

Есть ли способ сделать это в Python ??? Может кто-нибудь помочь ???

Ответы [ 2 ]

0 голосов
/ 30 января 2020

У меня есть одно решение, при котором вы устанавливаете диапазон строк, которые вы хотите получить

def pp():
    x = 0
    for i in doc.paragraphs:
        if x < 20:
            print(i.text)
        else:
            break
        x = x + 1

, однако это не будет возможно, если число строк в документе всегда отличается

0 голосов
/ 30 января 2020

преобразовать ваш абзац в текст и затем разделить на '\ n'

from docx import Document

# s = Document('f.docx').paragraphs
d = Document()
d.add_paragraph("""The protection of anticipatory or pre-arrest bail cannot
 be limited to any time-
frame or “fixed period” as denial of bail amounts to deprivation of the funda-
mental right to personal liberty in a free and democratic country, a Consti-
tution Bench of the Supreme Court ruled on Wednesday""")
d.add_paragraph("second paragraph")
ans = Document() #new_document
for s in d.paragraphs:
    print(s.text)
    print(s.text.split("\n"))
    str_list = s.text.split("\n")
    new_para = ""
    prev = str_list[0]
    for i in range(1, len(str_list)):
        if prev[-1]=="-":
            prev = prev[:-1]+str_list[i]
        else:
            if new_para =="":
                new_para = new_para + prev
            else:
                new_para = new_para + "\n" + prev
            prev = str_list[i]
    if new_para =="": 
        #if only one str in list
        new_para = new_para  + prev
    else:
        new_para = new_para + "\n" + prev

    ans.add_paragraph(new_para)
    print(new_para)
ans.save("demo.docx")




...