Python 计算文件中每行的字符数(不包括空格字符)
结果是: 36 1296 36 这两个数字是错的。。。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
如何更改它以输出: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)
将计算所有字符。如果需要其他内容,请更清楚。@zwersplit()
默认处理单个空格,而不是\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)