python文本拆分程序

时间:2015-06-17 07:51:26

标签: python file-io

我有一个程序,使用以下规则将文本拆分为句子:

句子边界出现在“。”,“?”和“!”不同的是:

A)句号后跟数字,没有插入空格。 B)句点之后是空格,后跟小写字母。 C)没有跟随空格的周期。 D)标题之前的时期。

我的书面代码如下:

file_name = raw_input("Enter the name of the text file: ")
txt_file = open('%s.txt' % file_name, 'r+')
text = txt_file.readline()
print; print "Original text is: "; print
print text

new_wrd = []
new_line = []
new_txt = []

while len(text.strip()) != 0:
    for index, char in enumerate(text):
        print char
        if char == "." or char == "?" or char == "!":
            if text[index+1] == " ":

                if ("".join(new_wrd) == "Mrs" or "".join(new_wrd) == "Mr" or "".join(new_wrd) == "Ms"
                    or "".join(new_wrd) == "Dr" or "".join(new_wrd) == "Jr"):

                    new_wrd.append(char)

                else:
                    if text[index+2].isupper():
                        new_line.append("".join(new_wrd))
                        new_line.append(char)
                        new_txt.append("".join(new_line))
                        new_line = []
                        new_wrd = []

                    else:
                        new_line.append("".join(new_wrd))
                        new_line.append(char + " ")
                        new_wrd = []

            else:
                new_wrd.append(char)

        elif char == " ":
            if ("".join(new_wrd) == "Mrs." or "".join(new_wrd) == "Mr." or "".join(new_wrd) == "Ms."
                or "".join(new_wrd) == "Dr." or "".join(new_wrd) == "Jr.") or new_wrd != []:

                new_line.append("".join(new_wrd))
                new_line.append(" ")
                new_wrd = []

        else:
            new_wrd.append(char)

    text = txt_file.readline()

for txt in new_txt:
    print txt
    txt_file.write(txt)

对于给定的例子:

先生。 XYZ是一个好孩子。他刚从ABC,Lmnop那里获得了他的B.Tech学位......至少,他已经通过了学位。

输出应显示:

先生。 XYZ是一个好孩子。

他刚从ABC,Lmnop那里获得了他的B.Tech学位......

至少,他已通过学位。

但相反,它显示:

先生。 XYZ是一个好孩子。 他刚从ABC,Lmnop那里获得了他的B.Tech学位......

可以对正确的输出做出哪些更正?

此外,代码:

txt_file.write(txt)

不工作。为什么呢?

0 个答案:

没有答案