簡體   English   中英

在新線上打印每個句子

[英]Print Each Sentence On New Line

我在文本文件中有這樣的文字

Long sleeve wool coat in black. Breast pocket.

我想要一個輸出,其中每個句子都打印在下一行中。

Long sleeve wool coat in black.

Breast pocket.

我嘗試了以下問題但是因為它被問到它給出了輸出

Long sleeve wool coat in black.

Breast pocket.

None

而且我必須對從原始文件中讀取的多個文本文件執行此操作,我必須以這種方式覆蓋該文件以分解行。 但是,當我嘗試這樣做時,只有沒有寫入它而不是現有的行。

任何幫助表示感謝提前。

嘗試:

s = 'Long sleeve wool coat in black. Breast pocket.'
print(s.replace('. ', '.\n'))

嘗試:

in_s = 'Long sleeve wool coat in black. Breast pocket.'
in_s += ' '
out = in_s.split('. ')[:-1]
print('.\n'.join(out))

說明:

  • in_s += ' '在字符串的末尾添加一個空格,使其以`'結尾。 ``像任何其他句子一樣。
  • ...in_s.split('. ')...將文本分割成有句點,后跟空格( '. ' )。
  • ...[:-1]刪除最后一個值,如果文本以句點和空格結尾,則該值將為None
  • ...'\\n.join(out)在打印前用句點和換行符分隔值。

幫個忙,使用nltk而不是正則表達式,甚至是簡單的str.split()

from nltk import sent_tokenize

string = "Long sleeve wool coat in black. Breast pocket. Mr. Donald Trump is the president of the U.S.A."

for sent in sent_tokenize(string):
    print(sent)

哪個收益率

Long sleeve wool coat in black.
Breast pocket.
Mr. Donald Trump is the president of the U.S.A.

這種方法很可能適用於邊緣情況,而大多數其他方法則不然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM