Удаление разрывов строк в выводе Python

#python #split #nltk

Вопрос:

Я очищаю текстовый файл и написал следующий код для удаления нежелательных символов. Моя проблема в том, что конечный результат отображается в виде списка слов, когда я хочу, чтобы он был составлен в виде текста. Я думаю, что проблема в этой строке, которая предназначена для удаления разрывов строк путем замены новой строки, т. е. «(n)» на «»

 Step4 = re.sub(r"(n)"," ",Step3)
        print(Step4)
 

Полный код выглядит следующим образом:

 f=open("/Applications/Python 3.9/cleaning text.txt",encoding='Latin-1')
raw=f.read()
#print(raw)
import re
import nltk
from nltk import word_tokenize
Data = re.split(r" ",raw)
for D in Data:
#    print(str(raw) 'n')
    Step1 = re.sub(r"(\.*)","",D)
#    print(Step1)
    Step2 = re.sub(r"(M)","hl",Step1)
#    print(Step2)
    Step3 = re.sub(r"([aa])","[a::]",Step2)
#    print(Step3)
    Step4 = re.sub(r"(n)"," ",Step3)
    print(Step4)
 

Комментарии:

1. Не могли бы вы поделиться текстом в cleaning text.txt файле

2. В строке» Данные = re.split(r»», необработанные) » вы создаете список строк. Вы должны иметь возможность заменять нежелательные символы непосредственно в строке raw.

Ответ №1:

Я думаю, что вам не нужно разбивать весь текст на список слово за словом. Вы можете предоставить необработанные данные в качестве входных данных для функции re.sub (). Если вы хотите удалить пробел из начала или конца необработанных данных, вы можете использовать для этого функцию strip ().

 f=open("/Applications/Python 3.9/cleaning text.txt",encoding='Latin-1')
raw=f.read()
import re

raw = str(raw).strip()
Step1 = re.sub(r"(\.*)","",raw)
Step2 = re.sub(r"(M)","hl",Step1)
Step3 = re.sub(r"([aa])","[a::]",Step2)
Step4 = re.sub(r"(n)"," ",Step3)