我有文件,我用python script
编写。该文件很大,包含1000多行,每行都非常大,它类似于:(shortened)
1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
2 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
3 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
...
并且,每行在监视器中显示时可以占用3行的空间。当我尝试:
fp = open('data.txt','r')
c = 0
for line in fp:
c += 1
print("No. of line = ",c)
我得到正确的值,并且当我使用read()
函数时,我得到了一个不同的值,例如:
fp = open('data.txt','r')
c = 0
data = fp.read()
for line in data:
c += 1
print("No. of line = ",c)
有人可以解释,read()
函数有什么问题吗?
提前感谢...
使用中
data = fp.read()
for line in data:
c += 1
您全部读入一个字符串,并且for
循环将此字符串视为字符列表-因此您要计算字符。
您必须使用readlines()
来获取行列表并对该列表中的行进行计数
data = fp.readlines()
for line in data:
c += 1
顺便说一句:相同的结果来计算字符数
data = fp.read()
c = len(data)
和数行
data = fp.readlines()
c = len(data)