檔案的三種開啟模式

2022-04-11 03:03:27 字數 1969 閱讀 5144

檔案操作的基礎模式有三種(預設的操作模式為r模式):

檔案讀寫內容的格式有兩種(預設的讀寫內容的模式為b模式):

需要注意的是:t、b這兩種模式均不能單獨使用,都需要與r/w/a之一連用。如rt,wb...

r: read,唯讀模式,只能讀不能寫,檔案不存在時報錯。

f = open('path',mode = 'rt')  # path為檔案的路徑

data = f.read()

print(data)

f.close()

f.read()讀取檔案指標會跑到檔案的末端,如果再一次讀取,讀取的將是空格。

由於f.read()一次性讀取檔案的所有內容,如果檔案非常大的話,可能會造成記憶體爆掉,即電腦卡死。因此可以使用f.readline()/f.readlines()/for迴圈讀取檔案內容,f.readable()判斷檔案是否可讀。

f = open('path',mode = 'rt')  # path為檔案的路徑

data1 = f.readable() # true

data2 = f.readline() # 讀一行

data3 = f.readlines() # 用list儲存讀出的文字

f.close()

w: 只能寫,不能讀,檔案存在的時候回清空檔案後再寫入內容;檔案不存在的時候會建立檔案後寫入內容。

f = open('path', mode='wt', encoding='utf8')

print(f"f.readable(): ")

f.write('randy 真傻呀\n') # '\n'是換行符

f.write('randy,you are daibi.')

f.write('randy 傻的我五體投地')

f.flush() # 立刻將檔案內容從記憶體刷到硬碟

f.close()

​ writeline()和writelines()了解,基本無用

a: 可以追加。檔案存在,則在檔案的末端寫入內容;檔案不存在的時候會建立檔案後寫入內容。

f = open('path', mode='at', encoding='utf8')

print(f"f.readable(): ")

f.write('randy 真傻呀\n') # '\n'是換行符

f.write('randy,you are daibi.')

f.write('randy 傻的我五體投地')

f.flush() # 立刻將檔案內容從記憶體刷到硬碟

f.close()

檔案寫操作例項:

使用open()方法操作檔案,但是open開啟檔案後我們還需要手動釋放檔案對作業系統的占用。但是其實我們可以更方便的開啟檔案,即python提供的上下文管理工具——with open()。

開啟單個檔案

with open('32.txt', 'rt', encoding='utf8') as f:

print(f.read())

開啟多個檔案

with open()方法不僅提供自動釋放作業系統占用的方法,並且with open可以使用逗號分隔,一次性開啟多個檔案,實現檔案的快速拷貝。

with open('32.txt', 'rb') as fr, \

open('35r.txt', 'wb') as fw:

f.write(f.read())

檔案操作open,r,w,a三種模式

對檔案操作的流程 1 開啟檔案,得到檔案控制代碼並賦值給乙個變數 2 通過控制代碼對檔案進行操作 3 關閉檔案 open 檔名 預設為唯讀開啟,如果你開啟檔案,不指定編碼集,那麼預設就走windows預設的gbk編碼,但是python程式預設列印是utf 8,所以就會報錯,必須指定utf 8 但是上...

vlan的三種模式

tag報文結構的變化是在源mac位址和目的mac位址之後,加上了4bytes的vlan資訊,也就是vlan tag頭 一般來說這樣的報文普通pc機的網絡卡是不能識別的 下圖說明了802.1q封裝tag報文幀結構 帶802.1q的幀是在標準乙太網幀上插入了4個位元組的標識。其中包含 2個位元組的協議識...

lvs lvs的三種模式

回顧了下lvs的三種模式的排程機制 1.lvs的dr模式中的arp的抑制,eth用自己口arp回應.2.keepalive是否直接操作rs?不直接操作,只操作dr 配lvs 3.tunnel模式keepalive怎麼配置?4.lvs支援的wrr,rr動態調整?dr模式圖 tunnel模式圖 三種模式...