檔案操作的基礎模式有三種(預設的操作模式為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模式圖 三種模式...