【发布时间】:2020-09-23 08:53:47
【问题描述】:
我有文件,我使用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()函数和不使用它有什么区别?
提前谢谢...
【问题讨论】:
-
您必须使用
readlines()而不是read()。第二个代码全部读取为一个字符串,您 for 循环从此字符串中获取字符并计算字符数。第一个按行读取的代码并计算行数。 -
顺便说一句:在第一个
c = len(fp),在第二个c = len(data)
标签: python arrays python-3.x file file-io