一、注意事項
A.能呼叫方法的一定是物件
B.檔案的操作流程:
1. 開啟檔案,得到檔案控制程式碼並賦值給一個變數
2. 通過控制程式碼對檔案進行操作
3. 關閉檔案
二、操作實現方法
“`
檔名:小雙雙
檔案內容如下:
昨夜寒蟬不住鳴。
驚回千里夢,已三更。
起來獨自繞階行。
人悄悄,簾外月朧明。
白首為功名,舊山鬆飾老,阻歸程。
欲將心事付瑤琴。
知音少,絃斷有誰聽。
“`
1.
1 f = open(`小雙雙`, `r`) 2 print(f.readline().strip()) # 讀取檔案第一行內容 3 4 # 執行第二次的時候讀取第二行內容,因為第一次讀取完成後自動把游標放到了第一行末尾 5 print(f.readline().strip())
>>> 昨夜寒蟬不住鳴。
驚回千里夢,已三更。
2.
1 f = open(`小雙雙`, `r`) 2 print(f.readlines()) #讀取所有內容,按行放到列表中 3 f.close()
>>> [`昨夜寒蟬不住鳴。
`, `驚回千里夢,已三更。
`, `起來獨自繞階行。
`, `人悄悄,簾外月朧明。
`,
`白首為功名,舊山鬆飾老,阻歸程。
`,`欲將心事付瑤琴。
`, `知音少,絃斷有誰聽。`]
3.
1 # 逐行列印檔案內容 2 f = open(`小雙雙`, `r`) 3 4 for n in f.readlines(): 5 print(n.strip()) 6 f.close()
>>>昨夜寒蟬不住鳴。 驚回千里夢,已三更。 起來獨自繞階行。 人悄悄,簾外月朧明。 白首為功名,舊山鬆飾老,阻歸程。 欲將心事付瑤琴。 知音少,絃斷有誰聽。
4.
1 # 在第3行後新增一行字串 2 f = open(`小雙雙`, `r`) 3 data = f.readlines() 4 f.close() 5 number = 0 6 7 for n in data: # 逐行列印檔案內容 8 if number == 3: 9 n = ``.join((n.strip(),` 小可愛`)) #字串拼接用.join(),且其只能接收一個引數 10 print(n.strip()) 11 number += 1
>>>昨夜寒蟬不住鳴。 驚回千里夢,已三更。 起來獨自繞階行。 人悄悄,簾外月朧明。 小可愛 白首為功名,舊山鬆飾老,阻歸程。 欲將心事付瑤琴。 知音少,絃斷有誰聽。
5.
1 f = open(`小雙雙`, `r`) 2 3 print(f.tell()) #顯示游標此時的位置 4 for n in f: #for內部將f物件做成一個迭代器,用一個取一個 5 print(n.strip()) 6 print(f.tell())
>>>0 昨夜寒蟬不住鳴。 驚回千里夢,已三更。 起來獨自繞階行。 人悄悄,簾外月朧明。 白首為功名,舊山鬆飾老,阻歸程。 欲將心事付瑤琴。 知音少,絃斷有誰聽。 147
6.
1 f = open(`小雙雙`, `r`) 2 # gbk編碼一箇中文佔兩位 3 print(f.tell()) #顯示游標此時的位置 4 print(f.read(4)) 5 print(f.tell())
>>>0 昨夜寒蟬 8
7.
1 f = open(`小雙雙`, `r`) 2 # gbk編碼一箇中文佔兩位 3 print(f.read(4)) 4 print(f.tell())#顯示游標此時的位置 5 6 f.seek(4) # 調節游標的位置 7 print(f.read(4))
>>>昨夜寒蟬 8 寒蟬不住
8.
1 f = open(`小雙雙`, `a`) 2 print(f.isatty()) # 判斷是否與終端裝置相關聯,是返回True
1 f = open(`小雙雙`, `a`) 2 3 #資料截斷,在‘a’模式下擷取原有資料的前6位,在‘w’模式下格式化檔案 4 f.truncate(6)
9.`a+` `w+` `r+` 模式
f = open(`小雙雙`, `w+`) #w+模式,執行該語句原檔案格式化 print(f.readline()) #所以執行該語句輸出為空 f.write(`小可愛`) #重新寫入字元 print(f.readline()) #再次讀取還為空,因為上句操作完成後游標移到了最後 f.seek(0) # 調整游標位置 print(f.readline()) f.close()
>>>
小可愛
1 f = open(`小雙雙`, `r+`) #r+模式 2 3 print(f.readline()) # 輸出原檔案內容, 4 5 f.write(`小可愛`) #在原檔案內容的後面接著寫入字元 6 print(f.readline()) #讀取為空,因為上句寫操作完成後游標移到了最後 7 8 f.seek(0) # 調整游標位置到0 9 print(f.readline()) 10 11 f.close()
>>>小可愛
小可愛小可愛
1 f = open(`小雙雙`, `a+`) #a+模式,追加內容;語句執行完游標到最後位置, 2 3 print(f.readline()) # 輸出為空, 4 5 f.write(`小可愛`) #在原檔案內容的後面追加內容 6 print(f.readline()) #讀取為空,因為上句寫操作完成後游標移到了最後 7 8 f.seek(0) # 調整游標位置到0 9 print(f.readline()) #輸出現有內容 10 11 f.close()
>>>
小可愛小可愛小可愛
三、檔案的安全開啟方式:
1 with open(`小雙雙`, `r`) as f: # with方式開啟檔案,後面不需要關閉檔案。推薦檔案操作使用with 2 3 # with同時管理多個檔案物件 4 with open(`小雙雙`, `r`) as f_read, open(`小雙雙`, `w`) as f_write: 5 for line in f_read: 6 f_write.write(line)