簡體   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