计算文件每行中的字符数,不包括空格字符

时间:2017-06-13 18:32:24

标签: python

inFile = open("reversedTestFile.txt") 
lines = inFile.readlines() 
for line in lines: 
    print (line) 



inFile.seek(0)
for line in inFile:
    x=len(line)
    print("Length of line: " + str(x))
    c = 0
    for i in line:
        if i !="":
            c+=x
    print("Number of non-space characters: " + str(c))

输出结果如下: 36 1296 36 1296 ......那么这两个数字,这是错的...... 如何更改它以使输出出来:27,23,31,24 ......?

2 个答案:

答案 0 :(得分:0)

我觉得您想要包含非空格字符,而不是包括非空格字符' (与其他字符),为此最简单的方法是分割你的字符串并总结块大小:

with open("reversedTestFile.txt", "r") as f:
    for line in f:
        print(sum(len(x) for x in line.split()))

答案 1 :(得分:0)

到目前为止,每个答案都会计算换行符\n\r\n的额外字符。如果您不想计算它,可以简单地从字符串中删除它,或者减少结果值。

with open('reversedTestFile.txt','r') as f:
    results=[len(line.replace('\r','').replace('\n','')) for line in f.readlines()]

print(results)