![](/img/trans.png)
[英]Python: Understanding indexing in the use of enumerate with 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.