用于打开文件并阅读行

问题描述 投票:0回答:1

我有文件,我用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()函数有什么问题吗?

提前感谢...

python arrays python-3.x file file-io
1个回答
0
投票

使用中

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)
© www.soinside.com 2019 - 2024. All rights reserved.