简体   繁体   English

Python:将txt文件中的每个句子大写,保留文件格式

[英]Python: Capitalize every sentence from a txt file retaining the format of file

I want to capitalize on every first word of a sentence from a text file.我想利用文本文件中句子的每个第一个单词。 But after paragraph change, python reads \n in starting of String which changes the format of the txt file.但是在段落更改后,python 在字符串的开头读取 \n ,这会改变 txt 文件的格式。 I want to retain the format while making all the first letters of the sentence into capital.我想保留格式,同时将句子的所有首字母变为大写。

def readfile(filepath):
    with open(filepath) as f:
        lines = f.read()
    print(lines)
    return lines


def puntuate():
    list_of_read_line = readfile(filename)
    list_of_read_line = [x.replace('\n', "") for x in list_of_read_line]
    list_of_read_line = [x.strip() for x in list_of_read_line]
    list_of_read_line = [x.capitalize() for x in list_of_read_line]
    print(list_of_read_line)

not sure I understood your exact requirements...but you could try this, which keeps the formatting and capitalizes the first word of each sentence:不确定我是否理解您的确切要求...但您可以试试这个,它保持格式并将每个句子的第一个单词大写:

import re

data = """
lorem ipsum dolor sit amet, consectetur adipiscing elit. vestibulum consequat, velit id mattis porttitor, 
arcu mauris semper libero, at pellentesque ante leo ac massa. vestibulum ultricies eleifend sodales. mauris 
dapibus magna id nisl vestibulum venenatis. etiam id ullamcorper tortor, nec lacinia odio. nam ut gravida magna. 
cras maximus mauris non diam volutpat, sed rutrum mauris euismod. donec in commodo ex, eu efficitur elit. curabitur 
non bibendum felis, in aliquet mi. in ultricies metus nulla, id euismod augue hendrerit nec. ut non sapien nunc. 
etiam pulvinar at sem vitae eleifend. proin vulputate congue tellus facilisis vulputate.

duis fringilla sem non congue molestie. pellentesque magna sem, pretium in velit ac, fermentum semper elit. 
integer urna felis, ornare et feugiat tempus, volutpat id tortor. donec posuere dui at leo cursus, sollicitudin 
fermentum ante tristique. aliquam erat volutpat. nullam quis pharetra orci. nulla eros diam, malesuada 
vitae ullamcorper sed, venenatis vitae justo. in vel enim ut ligula accumsan volutpat. nunc vitae lorem feugiat, 
vulputate velit nec, dignissim ex. quisque blandit lorem nisi, a vehicula mauris eleifend vulputate. phasellus 
sit amet rutrum magna, elementum venenatis mauris. donec fringilla est a convallis tempor. aenean vestibulum 
imperdiet ante, in auctor magna tempor sed. nunc sapien erat, venenatis nec odio a, lobortis suscipit ipsum. 
donec placerat sagittis posuere. sed accumsan purus sed laoreet tincidunt.

etiam porta ac enim nec cursus. donec ullamcorper neque tellus, et placerat risus ornare vitae. donec 
euismod lobortis metus. proin ullamcorper consectetur nisl a pharetra. cras ullamcorper et sapien id lacinia. 
donec consequat ante eget ligula commodo, nec malesuada tellus rutrum. fusce mattis maximus felis vel aliquam. 
morbi id laoreet mi. ut a auctor urna. morbi non vehicula lacus. mauris non aliquet augue, sed pharetra sapien.
"""


print(re.sub(r'(?:^|(?<=\.))(\s*.)', lambda match: r'{}'.format(match.group(1).upper()), data))

generates:生成:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat, velit id mattis porttitor, 
arcu mauris semper libero, at pellentesque ante leo ac massa. Vestibulum ultricies eleifend sodales. Mauris 
dapibus magna id nisl vestibulum venenatis. Etiam id ullamcorper tortor, nec lacinia odio. Nam ut gravida magna. 
Cras maximus mauris non diam volutpat, sed rutrum mauris euismod. Donec in commodo ex, eu efficitur elit. Curabitur 
non bibendum felis, in aliquet mi. In ultricies metus nulla, id euismod augue hendrerit nec. Ut non sapien nunc. 
Etiam pulvinar at sem vitae eleifend. Proin vulputate congue tellus facilisis vulputate.

Duis fringilla sem non congue molestie. Pellentesque magna sem, pretium in velit ac, fermentum semper elit. 
Integer urna felis, ornare et feugiat tempus, volutpat id tortor. Donec posuere dui at leo cursus, sollicitudin 
fermentum ante tristique. Aliquam erat volutpat. Nullam quis pharetra orci. Nulla eros diam, malesuada 
vitae ullamcorper sed, venenatis vitae justo. In vel enim ut ligula accumsan volutpat. Nunc vitae lorem feugiat, 
vulputate velit nec, dignissim ex. Quisque blandit lorem nisi, a vehicula mauris eleifend vulputate. Phasellus 
sit amet rutrum magna, elementum venenatis mauris. Donec fringilla est a convallis tempor. Aenean vestibulum 
imperdiet ante, in auctor magna tempor sed. Nunc sapien erat, venenatis nec odio a, lobortis suscipit ipsum. 
Donec placerat sagittis posuere. Sed accumsan purus sed laoreet tincidunt.

Etiam porta ac enim nec cursus. Donec ullamcorper neque tellus, et placerat risus ornare vitae. Donec 
euismod lobortis metus. Proin ullamcorper consectetur nisl a pharetra. Cras ullamcorper et sapien id lacinia. 
Donec consequat ante eget ligula commodo, nec malesuada tellus rutrum. Fusce mattis maximus felis vel aliquam. 
Morbi id laoreet mi. Ut a auctor urna. Morbi non vehicula lacus. Mauris non aliquet augue, sed pharetra sapien.

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM