【发布时间】:2013-12-02 04:34:27
【问题描述】:
#!/usr/bin/env python
import sys, re
def find_position(line):
pun = ""
if re.search(r"[.?!]+", line):
pun = re.search(r"[.?!]+", line).group()
pos = line.find(pun)
pos = pos+len(pun)-1
return pos
def sentence_splitter(filename):
f = open(filename, "r")
for line in f:
line = line.strip()
print line + "\n"
while line:
pos = find_position(line)
line2 = line[ : pos+1].split(" ")
length = len(line2)
last_word = line2[length -1]
try:
if re.search(r"[A-Z]+.*", last_word) or line[pos+1] != " " or line[pos+2].islower() :
print line[:pos+1],
line = line[pos+1:]
else:
print line[ : pos+1]
line = line[pos+1 :]
except :
print " error here!!"
f.close()
return " bye bye"
if __name__=="__main__":
print sentence_splitter(sys.argv[1])
在执行时
python sentence_splitter6.py README | more
发生错误
KeyboardInterrupt
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
我也必须按 clr+c
它不是自己关闭的
对此进行了尝试 How to handle a file destructor throwing an exception?
How to silence "sys.excepthook is missing" error?
链接也有,但不满意请帮忙
【问题讨论】:
-
检查
sentence_splitter函数中的缩进。在 python 中需要正确的缩进。
标签: python