Lawliet Python學習筆記4 檔案處理

2021-10-25 02:18:21 字數 3024 閱讀 9203

讀檔案函式

a.read(size)

a.readline(size)

a.readlines(hint)

寫檔案函式

a.wirte(s)

a.writelines(lines)

a.seek(offset)

《變數名》 = open(《檔名》,《開啟模式》)

檔名:檔案路徑和名稱

絕對路徑

windows系統中檔案的路徑方式:d:\pye\f.txt

在linux系統中檔案的路徑方式:d:/pye/f.txt

由於在python中\是轉義符,因而檔案路徑採用兩種方式

單斜槓:d:/pye/f.txt

雙反斜槓:d:\\pye\\f.txt

相對路徑:如果當前程式儲存在d盤根目錄下,那麼呼叫檔案路徑

./pye/f.txt

如果當前程式在pye目錄中,那麼呼叫檔案路徑

f.txt

如果不使用完整路徑,可以使用特殊字元雙點(..)來向前移動乙個目錄

../f.txt

開啟模式:文字模式/二進位制模式

)#文字形式、唯讀模式、預設值

f=open

("f.txt"

,"rt")#文字形式、唯讀模式、同預設值

f=open

("f.txt"

,"w") #文字形式、覆蓋寫模式

f=open

("f.txt"

,"a+")#文字形式、追加寫模式+讀檔案

f=open

("f.txt"

,"x") #文字形式、建立寫模式

f=open

("f.txt"

,"b") #二進位制形式、唯讀模式

f=open

("f.txt"

,"wb")#二進位制形式、覆蓋寫模式

《變數名》.close()

在程式中如果檔案開啟了,沒有寫關閉語句,只要程式正常退出,檔案會被自動關閉

讀入一行內容,如果給出引數,讀入該行前size長度 >>>s=f.readline() ------>中國是乙個偉大的國家!

.readall()

讀入整個檔案內容,返回乙個字串或位元組流

檔案的全文本操作:

遍歷全文本:

fname=

input()

fo=open

(fname,

"r")

txt=fo.read(

)//儲存為字串txt

#對全文txt進行處理

fo.close(

)#一次讀入,全部處理

#如果檔案體量過大,會耗費時間和資源

fname=

input()

fo=open

(fname,

"r")

txt=fo.read(2)

while txt !="":

txt=fo.read(2)

fo.close(

)#按數量讀入,逐步處理

檔案的逐行操作:

逐行遍歷檔案

fname=

input()

fo=open

(fname,

"r")

for line in fo.readlines():

print

(line)

fo.close(

)#一次讀入,分行處理

fname=

input()

fo=open

(fname,

"r")

for line in fo:

print

(line)

fo.close(

)#分行讀入,逐行處理

["中國"

,"法國"

,"美國"

]fo.writelines(ls)

fo.seek(0)

#輸入完之後,將指標放回檔案開頭,而後列印輸出才有內容

for line in fo:

print

(line)

fo.close(

)

有時檔案讀寫時可能會產生錯誤,導致f.close()語句不會被執行,檔案無法正常關閉,所以為了保證無論是否出錯都能正確關閉檔案,python引入了with語句來自動呼叫close()方法

#讀檔案

with

open

('../f.txt'

,'r'

)as f:

s=f.read(

)print

(s)

學習學習再學習

如果乙個技能足夠複雜 比如從零學程式設計 那就不要指望讀完一本書就可以打天下。多買幾本書同類的書 因為每個作者的出發點是不一樣的,哪怕對同乙個概念都有不同的解釋說明。理解知識的重要過程之一就如牛的反芻一樣,要嚼一遍 嚥下去 再吐出來 再嚼一遍 再嚥下去 所以,既然一本書可以讀幾遍,那麼同一話題多應該...

學習 學習 再學習

原本要使用vs2005開發乙個b s專案的,沒有想到只能先暫時停停了,居然跟不上技術的發展了,呵呵,一直使用delphi delphi也沒能跟上 沒有想到轉到vs2005上竟然有這麼多要學的東西,當然目的是了做乙個好的系統。最近一直在學習asp.net ajax,雖然專案停了,但是我覺得值得,有很多...

只是學習 學習 再學習

通過做 讓我學會了很多東西 什麼 flash div css html js as 雖然都只是皮毛 不過 算是了解那麼一點點吧 哈哈 我還突然發現 我的 數學和英語 進步了不少 而且還都是很實用的 比在學校的進步可快多了 那句話說的很不錯 在你了解了一些皮毛之後你會發現很多東西你都必須去學。因為少一...