f = open('作业一素材.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
txt=txt.replace('顺丰控股股份有限公司\nS.F. HOLDING CO., LTD.','') #将页脚内容替换为空
lst = txt.split()
for i in range(1,len(lst)):
if (lst[-i].find('.') == -1)&(lst[-i].find(',') == -1): #最后一词没有标点
if lst[-i].isalpha(): #最后一词是单词,输出
last_word = lst[-i]
print(last_word)
break
else: #最后一词不是单词,跳过,进入下一次循环
continue
else:
last_word = lst[-i][:-1] #最后一词有标点,删去标点
if last_word.isalpha(): #最后一词删去标点后是单词,输出
print(last_word)
break
else: #最后一词不是单词,跳过,进入下一次循环
continue
print('最后一个单词的长度为',len(last_word))
def cutsentence(string): #定义分割单句函数
l=[]
s=[]
for item in string:
if item in [',','。','!','?',';','——',] :
s.append(item)
l.append(''.join(s))
s=[]
else:
s.append(item)
return(l)
f = open('作业一附加选做题素材.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
txt=txt.replace('顺丰控股股份有限公司\nS.F. HOLDING CO., LTD.','') #将页脚内容替换为空
txt = txt.replace('\n','') #去掉换行符便于单句的分割
lst = cutsentence(txt) #调用自定义分割函数
#单句分割方法2
#import re
#lst = re.split('[,。!?;——]',txt)
last_sent = lst[-1]
lst2 = txt.split('。') #以句号进行整句分割
last_sent2 = lst2[-2]
print('最后一个单句为:',last_sent,'句子的长度是:',len(lst[-1]))
print('最后一个整句为:',last_sent2+'。','句子的长度是:',len(lst2[-2])+1)
对于单句的分割。方法1是自定义函数。方法2是使用re.split,即可实现多个分隔符的分割。
当使用split("。")时,遇到“。”进行一次分割,结果的列表里会多出一个内容为空的元素,并且用于分割的“。”会消失,所以在整句计数时,长度+1。(分割单句使用re.split()时也要注意这两点)