第一行没有在Python 3中正确地大写

时间:2015-08-06 19:51:39

标签: python python-3.x

我试图将文件中每个名字的第一个字母大写,所以我写了下面的代码:

with open('C:/Users/Nishesh/Documents/updated_firstnames.txt', 'r+', encoding='utf-8') as updated_fnames_file:
    with open('C:/Users/Nishesh/Documents/capitalized.txt', 'w', encoding='utf-8') as new_fnames:
        for line in updated_fnames_file:
            new_fnames.write(line.capitalize())

我是Python的新手,所以我很清楚这可能是糟糕的格式/逻辑(并且我很欣赏改进它的建议),但出于我的目的,这确实管理了据我所知,正确地将文件中的每个项目大写,而不是第一个项目。实际上,原始文件中的第一个名称已经大写,但是在我运行它之后,它在结果文件中结束了小写。第一个文件中已经大写的其他项目不是小写的 - 只是这个。为什么会这样?

1 个答案:

答案 0 :(得分:0)

capitalize():

  

它返回一个字符串的副本,只有第一个字符大写。

你可能需要来自字符串lib的capwords()。

string.capwords():

  

使用str.split()将参数拆分为单词,使用str.capitalize()对每个单词进行大写,并使用str.join()连接大写单词。

或者您可以手动执行相同的方法

new_fnames.write(' '.join(map(str.capitalize, line.split())))