![](/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.