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

Python 计算文件中每行的字符数(不包括空格字符),python,Python,结果是: 36 1296 36 这两个数字是错的。。。 如何更改它以输出:27、23、31、24……?我感觉您希望只包含非空格字符,而不是“包含非空格字符”(与其他字符),为此,最简单的方法是拆分字符串并求和块大小: inFile = open("reversedTestFile.txt") lines = inFile.readlines() for line in lines: print (line) inFile.seek(0) for line in inFile

结果是: 36 1296 36 这两个数字是错的。。。
如何更改它以输出:27、23、31、24……?

我感觉您希望只包含非空格字符,而不是“包含非空格字符”(与其他字符),为此,最简单的方法是拆分字符串并求和块大小:

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))

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

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

因此,只使用
len()
有什么错呢?它将返回一个字符串(在本例中是您的行)的确切字符数,包括“非空格”字符。
len(行)
将给出包括换行符在内的字符数
i
永远不会是
我想我明白了您的要求,但是你的标题听起来很混乱。我改写了,使它更清楚。如果我不明白你在问什么,请告诉我,我将回滚我的编辑。很抱歉造成混淆,我想打印每行的字符,然后是非空格字符等等。使用嵌套for循环我希望包括非空格字符上述将仅包括非空格字符,公共
len(line)
将计算所有字符。如果需要其他内容,请更清楚。@zwer
split()
默认处理单个空格,而不是
\t
\n
。我弄错了吗?@Coldspeed-你弄错了,
str.split()
将使用空格字符,包括
\t
\n
\r
用于拆分。我必须使用嵌套for循环
with open('reversedTestFile.txt','r') as f:
    results=[len(line.replace('\r','').replace('\n','')) for line in f.readlines()]

print(results)