Python開啟檔案open 的注意事項

2022-09-08 00:51:20 字數 1383 閱讀 6263

剛剛用open(filename)來開啟txt格式的檔案,總是出現錯誤,總是找不到檔案讀取的內容,後來才發現是open()在使用過程中自動關閉了。這裡介紹另種方法解決這個問題。

第一種方法。

with open(filename) as file_object:

content=file_object.read()

其實就是將檔案物件儲存給file_object,然後將檔案內容讀取儲存給content,這種方法python會在程式不需要呼叫檔案時自動關閉檔案,不需要我們去呼叫close()來關閉檔案。

當我們過早的呼叫close()時,需要使用檔案時就會出現檔案無法呼叫的情況,所以不推薦自己使用open(),close()方式來開啟檔案。

第二種方法。

將檔案內容儲存到列表裡面,這樣就算檔案關閉了,我們直接訪問列表裡面儲存的檔案內容就可以了。

with open(filename) as file_name:  

lines=file_name.readlines()

for line in

lines:

print(line.rstrip())

用readlines()來將內容儲存到列表裡,並且通過逐行訪問列表內容來獲得檔案內容。

例子:

1

defloaddata(filename):

2 datamat=;labelmat=

3 fr=open(filename)

4 datacontent=fr.readlines()5#

用乙個列表把檔案內容裝起來,否則用open開啟檔案後會自動關閉,在後面直接訪問fr時檔案已經關閉,獲取不到檔案了,6#

也可以用with open (filename) as fr:這種操作會根據檔案使用情況來自動關閉

7 featnum=len(datacontent[0].strip().split('

\t'))-1#

資料的屬性數量

8print

(featnum)

9for line in

datacontent:

10 linearr =

11 curline=line.strip().split('

\t')#

對每行資料分割成與屬性數相等的資料

12for i in

range(featnum):

1314

16return datamat,labelmat

如果我們去掉datacontent=fr.readlines()這一行內容,而一直用fr來不斷的呼叫檔案,會發現無法掉出資料,因為檔案在第一次使用後就關閉了,後面的檔案便無法呼叫出來。

python 開啟檔案 open

三 檔案讀寫定位操作 讀 f.read size 如果沒有size即f.read 一次性讀取檔案全部內容,返回型別str 如果有size即f.read 50 讀取最多的位元組內容 1.檔案很小,可一次性讀取,檔案較大,超過記憶體大小,內容爆掉 2.檔案過大,可用f.read size x為每次最多讀...

python 開啟檔案open和codecs區別

當我面有資料需要儲存時,第一時間一般會想到寫到乙個txt檔案中,當然,資料量比較大的時候還是寫到資料庫比較方便管理,需要進行網路傳輸時要序列化,json化。下面主要整理一下平時用的最多的寫入到檔案中,一般以txt結尾,linux裡不會以後綴來區分檔案型別,字尾可以隨便,也可以沒有。python讀寫檔...

使用open開啟FIFO檔案

include include include include include include include define fifo name tmp my fifo int main int argc,char argv argv if strncmp argv,o rdonly 8 0 ope...