разбить предложения с несколькими символами и объединить их в конце каждого предложения - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть текстовый файл с 1000 предложений. Я разделил предложения от '.' , но в этих предложениях также есть '?' и '!' . Мне нужно также разделить их, а также присоединить эти символы в конце этих предложений. Например: text = "У меня есть друг. У меня много друзей! Я очень счастлив сегодня. Вы счастливы? Я был sh вы были." Вывод:

I have a friend.
I have many friends!
I am very happy today.
Are you happy?
I wish you were.

Код, который я пробовал:

textsentences = text.split('.')
I have tried this code.
with open("file.txt",'w') as writefile:
    for line in textsentences:
        line = line.strip()
        writefile.write("%s . \n" % line)

Работает только для одного символа.

1 Ответ

1 голос
/ 09 апреля 2020

Это должно работать. Переменная line_start предназначена для избежания лишних пробелов в начале предложения:

text = "I have a friend. I have many friends! I am very happy today. Are you happy? I wish you were."
line_start = False
with open("file.txt", 'w') as writefile:
    for i in range(len(text)):
        if text[i].isalnum() or text[i] == ' ':
            if line_start == True and text[i] == ' ':
                line_start = False
                continue
            writefile.write(text[i])
        else:
            writefile.write(text[i] +'\n')
            line_start = True

Вывод: file.txt

I have a friend.
I have many friends!
I am very happy today.
Are you happy?
I wish you were.
...