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