繁体   English   中英

对readline()的理解

[英]Understanding of readline()

我对 python 很陌生,发现了一些我对 readline() 函数不了解的地方:

代码 1:

f = open("Files/bestTest.txt", "w")
data = f'4\rtest'
f.write(data)
f.close()
f = open("Files/bestTest.txt", "r")
x = float(f.readline())
print(2 * x)
f.close()

第一个代码有效并打印:8.0

代码 2:

f = open("Files/bestTest.txt", "w")
data = f'4\rtest'
f.write(data)
f.close()
f = open("Files/bestTest.txt", "r")
print(2 * float(f.readline()))
f.close()

第二个代码不起作用并引发错误: ValueError: could not convert string to float: 'test'

我不明白为什么代码中的微小差异会导致错误。 在第二个代码中, readline() 似乎也出于某种原因返回了第二行。 也许有人可以向我解释。

提前致谢

我看不出为什么您的第二个代码的行为应该与第一个代码不同,因为它实际上是相同的。

f.readline()返回第二行内容的唯一原因是 cursor 目前就在那里,这意味着第一行已经在文件打开的同一 session 期间被读取。

readline()顺序读取文件的行,因此它将返回第n行,其中 n 是在同一 session 期间调用 function 的次数。

我怀疑您在没有关闭并重新打开文件的情况下运行了第二个代码。 但是,即使是这种情况,您也可以始终使用f.seek(0)将 cursor 返回到文件的开头。

f.seek(0)
print(2 * float(f.readline()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM