我有一个名为file
的文件,其中包含以下文字:
Hello
I am not a bot
I am a human
Do you believe me?
I know you won't
Yes I am a bot
Yes you thought it right
此代码打印出文本的所有行:
with open(file) as f:
for i in f:
print(i,end="")
但是这段代码没有,我也不明白为什么。
with open(file) as f:
for i in f:
print(f.readline(),end="")
打印出来:
I am not a bot
Do you believe me?
Yes I am a bot
我理解的是当循环遍历文件中的行时,它将读取该行并将其作为字符串返回,然后打印。
如果我用for i in range(9)
替换for循环,它就可以了。
答案 0 :(得分:5)
文件对象的for循环隐式调用readline
(或等效的)
所以发生的事情是,在每个循环中你调用readline
两次,这就是你得到每一行的原因