Python中计算换行符的问题

Python中计算换行符的问题,python,Python,我在计算换行时有点小问题。我正在开发一个程序,该程序可以计算.txt文件中的项目(字符、大小写字符等)。但是,我的行计数器计算的是字符数加1,而不是新行数。例如,我得到的不是字符计数1048和行计数37,而是字符计数1048和行计数1049。我不知道我在哪里搞砸了 以下是相关代码。我感谢任何帮助 # initializing counters char_count = 0 lower_count = 0 upper_count = 0 lines_count = 0 word_count = 0

我在计算换行时有点小问题。我正在开发一个程序,该程序可以计算.txt文件中的项目(字符、大小写字符等)。但是,我的行计数器计算的是字符数加1,而不是新行数。例如,我得到的不是字符计数1048和行计数37,而是字符计数1048和行计数1049。我不知道我在哪里搞砸了

以下是相关代码。我感谢任何帮助

# initializing counters
char_count = 0
lower_count = 0
upper_count = 0
lines_count = 0
word_count = 0
prev_ch = ' '
is_prev_alnum = False



for ch in contents:
    char_count += 1
    if ch.islower():
        lower_count += 1
    if ch.isupper():
        upper_count += 1
    if ch == '\n':
        lines_count += 1


    # count words
    if ch.isalnum():
        if not is_prev_alnum:
            word_count += 1
        is_prev_alnum = True
    else:
        is_prev_alnum = False

    if prev_ch != '\n':
        lines_count += 1

    prev_ch = ch 
你为什么要这么做

    if prev_ch != '\n':
        lines_count += 1
由于
prev\u ch
已定义为
'
或有效的
ch
它不是
'\n'
,因此它会像字符一样为每个循环计数


正如注释中所建议的,如果prev\u ch=='\n'

您可以通过文件流上的readlines()方法轻松地执行此操作

yourFile = open(pathToFile, 'r')
flines = yourFile.readlines()
yourFile.close()
linecount = len(flines)
for line in flines:
    for ch in line:
        #do something per line character

您正在检查
是否上一个!='\n'
。我想你的意思是检查
如果prev\u ch=='\n'
。换句话说,为每一个
\n
计算一个新行。好吧,这么简单的问题仅供参考,如果.txt结尾只有一行但没有\n字符,我将如何使用上一行向行计数中添加一行?不过,您的建议在其他方面都很有效。在这种情况下,行数的值是0,对吗?char\u count不是零,那么您可以在末尾分配行\u count=1,如果char\u count!=0和行数=0:行数=1