日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的文件式如何操作_Python文件操作

發布時間:2024/10/12 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的文件式如何操作_Python文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文件常用IO操作——open

#r模式

f = open("test","r") #只讀

f.read()

f.write("abc")

f.close()#w模式

f = open("test","w") #只寫打開

f.write("abc")

f.close()

r模式

只讀打開文件,若使用write方式,會拋異常

如果文件不存在,拋出異常

w模式

只寫方式打開,如果讀取則拋異常

若文件不存在,則直接創建文件

如果文件存在,清空文件內容并寫入

#x模式

f = open("test","x") #只寫打開

f.read()

f.write("abc")

f.close()#a模式

f = open("test","x") #只寫打開

f.read()

f.write("abc")

f.close()

x模式

文件不存在,則直接創建文件,并只寫方式打開

文件存在,則拋異常

a模式

文件存在,只寫打開,追加內容

文件不存在,則創建后,只寫打開,追加內容

r是只讀,wxa都是只寫

wxa模式都可產生新文件

文件指針

mode = r 指針起始在0位置

mode = a 指針起始在EOF文件末尾位置

tell() 顯示指針當前位置

seek(offset[,whence]) 移動文件指針,是按照字節偏移

seek

seek(offset[,whence]) 移動文件指針。是按照字節偏移

offset 偏移的字節數??梢詾檎拓摂?。

偏移后可以超過文件末尾EOF,超過部分用字節O表示。

不能超過文件開始。如果超過會報錯

tell

可以顯示當前文件指針位置,注意指針位置是按照字節計算的。

fil = open("test","a+") #打開文件

fil.write("abcd你好")

fil.seek(0)#指針回到起始位置

fil.seek(2,0) #指針相對于開始位置向左移動2個位置

print(fil.tell()) #查看當前指針位置

fil.close() #關閉文件流

lush() 將緩沖區數據寫入到磁盤

close() 關閉文件流。關閉前會調用flush()。文件已經關閉,再次關閉沒有任何效果

seekable() #是否可以seek

readable() #是否可讀

writable() #是否可寫

closed #是否已經關閉

buffering緩沖區

-1 表示使用缺省大小的buffer。

0 只在二進制模式使用,表示關閉buffer

1 只在文本模式使用,表示使用行緩沖,意思就是見到換行符flush

大于1 使用指定buffer的大小

buffer緩沖區:緩沖區是一個內存空間,一般來說是一個FIFO隊列,到緩沖區滿了或者達到閥值,數據才會flush到磁盤。flush()將緩沖區數據寫入到磁盤,close()關閉文件流,關閉前會調用flush()

總結規律:

文本模式,一般都用默認緩沖區大小

二進制模式,是一個個字節的操作,可以指定buffer的大小

一般來說,默認緩沖區大小是比較好的選擇,除非明確知道,否則不調控它

一般編程中,明確知道需要寫磁盤了,都會手動調用一次flush,而不是等到自動調用flush或者close的時候。

encoding編碼

encoding 編碼,僅文本模式使用。如果是b字節模式,無用

默認值為None表示使用缺省編碼,依賴操作系統。即 為默認值None是,使用文本模式打開文件時,默認使用的編碼為系統默認編碼。windows下缺省值為GBK(0xBOA1),Linux下缺省值為:UTF-8

上下文管理

一般情況,系統對打開文件上限做了限制,linux中可以使用ulimit -a 查看所有限制。其中open file就是打開文件數的現在,默認是1024。如果打開文件達到上線,程序在次打開文件就會出錯。出現OSError異常。為了防止打開文件后沒有關閉文件,一般都需要添加異常處理。當發生異常是。關閉文件。

f =Nonetry:

f= open('test')

f.write("abc") #文件是用只讀模式打開,寫入失敗。

f.close()finally:if f!=None:

f.close()#當發生異常,如果f不為空,關閉文件流。釋放文件對象

上下文管理:一種特殊的語法,交給解釋器去釋放文件對象

使用with…as 關鍵字

上下文管理的語句塊并不會開啟新的作用域

with語句塊執行完的時候,會自動關閉文件對象

第一種寫法示例

delf#使用with...as 語法,當代碼塊中出現異常時,會自動關閉f

with open("test") as f:

f.write("abc") #因為是只讀模式打開,所有會出錯。寫入失敗#測試f發現f已經關閉

f.closed

第二種寫法:

f = open("test")

with f:

f.write("abcd") #因為是只讀模式打開,所有會出錯。寫入失敗#測試f,f已經關閉

f.closed

對于類似于文件對象的IO對象,一般來說都需要在不使用的時候關閉,注銷,已釋放資源。IO被打開的時候,會獲得一個文件描述符。計算機資源是有線的,所以操作系統都會做限制。就是為了保護計算機的資源不要被完全耗盡,計算資源是共享的,不是獨占的。

一般情況下,除非特別明確的知道資源情況,否則不要提高資源的限制值來解決問題。

總結

以上是生活随笔為你收集整理的python的文件式如何操作_Python文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。