用read 函式讀取檔案兩次,就變成空字串

2022-09-05 18:24:08 字數 787 閱讀 9823

問題:用read()函式讀取檔案兩次,就變成空字串

**示例:

檔案 my_file 記憶體的是 'a b c'

with open ('my_file', 'r') as f:

a = f.read()

b = f.read().split()

print a # a b c

print b #

原因:python在讀取檔案的時候是根據游標位置來讀取的。讀一行以後游標位置到了下一行。再來個read又到了下一行。

解決辦法:

一:

with open ('my_file', 'r') as f:

a = f.read()

f.seek(0) # 再次read之前 f.seek(0)

b = f.read().split()

print a # a b c

print b # ['a', 'b', 'c']

二:with open ('my_file', 'r') as f:

a = f.read()

b = a.split()

print a # a b c

print b # ['a', 'b', 'c']

C 通過Read函式讀取檔案

通過read函式將檔案中的資料按照一定的長度讀取出來並且存放在新的陣列中。函式原型istream read char s,streamsize n 用來暫存內容的陣列 必須是char 型 以及流的長度比如我們要讀取txt檔案中的內容ifstream in test.txt 先通過檔案流將流與txt檔...

fork()函式兩次返回

為什麼fork會返回兩次?由於在複製時複製了 父程序的 堆疊段,所以兩個程序都停留在fork函式中,等待返回。因此fork函式會返回兩次,一次是在父程序中返回,另一次是在子程序中返回,這兩次的返回值是不一樣的。過程如下圖。fork呼叫的乙個奇妙之處就是它僅僅被呼叫一次,卻能夠返回兩次,它可能有三種不...

為什麼fgets 會讀取檔案最後一行兩次?

我們在讀取檔案時,書中經常提到的邏輯是這樣的,但這是錯誤的!while feof fp feof不是判斷是否已經到檔案尾,而是判斷是否讀了檔案尾,fgets在讀到檔案尾後,自動返回,buf中的內容並沒有改變,而你也沒有判斷fgets是否成功,所以多出乙個相同的行.首先你要知道不論是否讀夠指定的字元數...