Python 3.x 如何知道txt文件中以相同字符开头的行数?

Python 3.x 如何知道txt文件中以相同字符开头的行数?,python-3.x,Python 3.x,我有一个txt文件,我想计算句子的数量,一个句子必须以-这并不意味着不会有其他出现-在句子中开始。 句子长度可能超过一行。 句子之间可能有一行以上的空行我们在查找文本中的句子数量时遇到了问题 文件每个句子的开头都有一个“-” 线一个句子可以跨越几行,甚至包括空行 所以我们需要打开文本文件,然后循环每一行,一行一行 一段时间。如果行以“-”开头,则递增句子计数器。 对文本文件进行假设和编码,并处理潜在的UTF 打开文件时使用相关参数解码错误 “f-string”PEP-498格式从3.6版开始提供

我有一个txt文件,我想计算句子的数量,一个句子必须以-这并不意味着不会有其他出现-在句子中开始。 句子长度可能超过一行。
句子之间可能有一行以上的空行

我们在查找文本中的句子数量时遇到了问题 文件每个句子的开头都有一个“-” 线一个句子可以跨越几行,甚至包括空行

所以我们需要打开文本文件,然后循环每一行,一行一行 一段时间。如果行以“-”开头,则递增句子计数器。 对文本文件进行假设和编码,并处理潜在的UTF 打开文件时使用相关参数解码错误

“f-string”PEP-498格式从3.6版开始提供

- Right ID: -999999        Duplicated Data --

- Right ID: -999999        Duplicated Data 

- Right ID: -999999        Duplicated Data 

-checking the line below this sentence is more than one line long but the count should take it under consideration only once due to "-" being present only once.

句子的开头指示符是否总是在一行的开头?使用readlines和line.startswith逐行阅读-如果您的问题已解决,请将答案标记为已接受,以便其他人可以看到您的问题已得到解答解决此问题:返回codecs.charmap\u decodeinput,self.errors,decoding\u table[0]UnicodeDecodeError:“charmap”编解码器无法解码位置6556处的字节0x9d:字符映射到假设错误不会真正影响句子数,您可以忽略这些错误。更新了解决方案。或者指定文件的文本编码。请通过编辑对您的答案进行解释,以便其他人可以从中学习。只是增加了一些细节。
"""
Count number of sentences in a text file.

A sentence starts with a '-' at the start of a line.
"""


def count_sentence_in(file):
    counter = 0
    with open(file, encoding='utf-8', errors='replace') as fd:
        for line in fd:
            if line.startswith('-'):
                counter += 1
    return counter


file = 'data.txt'
cnt = count_sentence_in(file)
print(f'Number of sentences {cnt}')