为什么两个函数的print len()值都不同?它们不一样吗?
此脚本打开的文件是一个包含三行文本的文本文件。我把它命名为test.txt,里面是
Jack and Jill
gave up
they went home with no water
代码:
def function2nd (filename):
target = open(theFile, 'r')
inData = target.read()
print inData
print len(inData)
target.close()
theFile = raw_input("What is the file name?\n>>")
function2nd(theFile)
def function3rd (filename):
target = open(theFile, 'r')
target.read()
print target.read()
print len(target.read())
target.close()
function3rd(theFile)
答案 0 :(得分:4)
文件就像一个长条带;你可以阅读文件,但是当你完成时,你已经将磁带一直传到最后。再次阅读不会再次为您提供数据。
因此,您的第二个函数试图从已经缠绕到最后的文件中读取数据。
您可以通过重新打开文件或使用target.seek(0)
将其发送回开头来回放“磁带”。
答案 1 :(得分:1)
好吧,第二个你读取打开文件然后调用len
,但文件对象在那时是空的。
在第一个文件中,您读取文件,将内容放入变量中,然后获取变量的长度。