Python 在单独的行中打印段落中的多个句子

Python 在单独的行中打印段落中的多个句子,python,Python,Whish将下面的文档更改为txt文件(带文本),然后输入文件进行更改,使每个句子都在自己的行中。我尝试了open()并得到了一个错误。有人知道怎么处理这个吗 当我写以下内容时,我得到一个索引器:字符串索引超出范围 document = "Hello World. Goodbye World" def sentence_separator(document): pos = 0 for char in document: if char[pos] == ".":

Whish将下面的文档更改为txt文件(带文本),然后输入文件进行更改,使每个句子都在自己的行中。我尝试了open()并得到了一个错误。有人知道怎么处理这个吗

当我写以下内容时,我得到一个索引器:字符串索引超出范围

document = "Hello World. Goodbye World"
def sentence_separator(document):
    pos = 0
    for char in document:
        if char[pos] == ".":
            char[pos] = "\n" 
        pos += 1
print(sentence_separator(document))
所需输出是每句话的单独行:

Hello World
Goodby World

您只需使用
str.join

document = "Hello World. Goodbye World"

print('\n'.join(document.split('. ')))

Hello World
Goodbye World

您可以使用str.replace将“.”替换为行返回:

def sentence_separator(document):
    return document.replace('.', '\n')

您可以使用替换功能:

print(document.replace('.','\n')
您可以使用带有参数的方法指定要拆分的字符,然后打印结果数组中的每个元素:

sentences = document.split('.')
print([s.strip() for s in sentences])

而且
s.strip()
可以消除周期周围的任何额外空格。

有一种简单的方法可以做到这一点:

document = "Hello World. Goodbye World"

def sentence_separator(document):
    sentences = document.split(". ")
    return "\n".join(sentences)

print(sentence_separator(document))
注意:出现此错误的原因是索引器错误:字符串索引超出范围,因为使用for in循环处理字符串时,每次递增都会使用该字符串的一个字符。因此,在这一行:

if char[pos] == ".":

想象一下,如果1是
pos
变量的值:它将尝试查找一个字符的第二个字符(听起来很糟糕,不是吗?)。因此,您会得到索引器:字符串索引超出范围

使用
replace()
例如
document.replace(“.”,“\n”)
?您的文档中会有“我的名字是C.S.Lewis”吗?您重复了两次:
char
正在检查
文档
的每个元素,然后尝试访问
char
中的
pos
位置。但是
char
已经是该位置的字符了。不知道在函数中插入该字符的位置。你能把它插入函数吗?感谢。我有一个后续问题:如果文档变量实际上是一个包含文本的txt文件,在同一目录中,我尝试使用str.join和split方法更改此文本,并收到一条错误消息。AttributeError:“文件”对象没有属性“拆分”。text=open(“text_file.txt”,“w”)text.write('\n'.join(text.split('.')))text.close()你能写完整的代码吗。感谢。我有一个后续问题:如果文档变量实际上是一个包含文本的txt文件,在同一目录中,我尝试使用str.join和split方法更改此文本,并收到一条错误消息。AttributeError:“文件”对象没有属性“拆分”。text=open(“text_file.txt”,“w”)text.write('\n.join(text.split('.')))text.close()有一个后续问题:如果文档变量实际上是同一目录中包含文本的txt文件,我尝试使用str.join和split方法更改此文本,并收到一条错误消息。AttributeError:“文件”对象没有属性“拆分”。我写了这个:document=open(“text.txt”,“r”)def句子分隔符(document):句子=document.split(“.”)return“\n”。join(句子)print(句子分隔符(document))好的!此错误表示“拆分”方法与文件对象无关。而不是字符串。因此,为了读取文件的内容,请在文档变量中打开文件后放置此“document\u content=document.read()”。就是这样!文件对象有一个“读取”方法,该方法。。。读取文件内容!(如果你觉得我的答案有用,请投上一票或更多;-))