我试图将文件中每个名字的第一个字母大写,所以我写了下面的代码:
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的新手,所以我很清楚这可能是糟糕的格式/逻辑(并且我很欣赏改进它的建议),但出于我的目的,这确实管理了据我所知,正确地将文件中的每个项目大写,而不是第一个项目。实际上,原始文件中的第一个名称已经大写,但是在我运行它之后,它在结果文件中结束了小写。第一个文件中已经大写的其他项目不是小写的 - 只是这个。为什么会这样?
答案 0 :(得分:0)
capitalize():
它返回一个字符串的副本,只有第一个字符大写。
你可能需要来自字符串lib的capwords()。
string.capwords():
使用str.split()将参数拆分为单词,使用str.capitalize()对每个单词进行大写,并使用str.join()连接大写单词。
或者您可以手动执行相同的方法
new_fnames.write(' '.join(map(str.capitalize, line.split())))