面试过程中问我 “如何将一段文本中的句子首字母大写?” 当时我没想太好,给出的python代码有点问题:
#原来的代码
with open('test.txt','r') as f:
text = f.read()
for line in text.split("."):
print(line.capitalize())
当时想得太简单,这样的话:
1.如果源文件很大一次read出来会有问题
2.只根据“.”来划分句子
3.打出来都是单独的句子,原本的段落顺序和原来的标点丢失
我回来之后重新想了一下重新写了下:
如果原文件不大就直接用第一个注释就行,我这里测试结果如下图(python3.4.3):
基本可以解决问题1,2第三个问题标点问题没想到怎么解决。另外,当时短时间没想到sed的答案,回来之后想到一个测试之后是可行的,如下图:
当然Python中的capitalize()可以修复掉fOrK这种变成Fork,sed没找到解决办法。