(十七)Python學習之檔案操作
(十七)Python學習之檔案操作
一、檔案操作流程
1.開啟檔案,得到檔案控制程式碼並賦值給一個變數;
2.通過控制程式碼對檔案進行操作;
3.關閉檔案。
二、開啟檔案的模式
1.檔案控制程式碼 = open(‘檔案路徑’, ‘模式’)
模式可以是以下方式以及他們之間的組合:‘r’, ‘w’, ‘a’ , ‘b’, ‘t’, ‘+’, ‘U’
(1)開啟檔案的模式有(預設為文字模式):
r :只讀模式(預設模式,檔案必須存在,不存在則丟擲異常)
w:只寫模式(不可讀,不存在則建立,存在則清空內容)
a: 之追加寫模式(不可讀,不存在則建立,存在則只追加內容)
(2)對於非文字檔案,我們只能使用b模式,"b"表示以位元組的方式操作(而所有檔案也都是以位元組的形式儲存的,使用這種模式無需考慮文字檔案的字元編碼、圖片檔案的jgp格式、視訊檔案的avi格式等)
rb:只讀模式(預設模式,檔案必須存在,不存在則丟擲異常)
wb:只寫模式(不可讀,不存在則建立,存在則清空內容)
ab: 之追加寫模式(不可讀,不存在則建立,存在則只追加內容)
注意:以b方式開啟時,讀取到的內容是位元組型別,寫入時也需要提供位元組型別,不能指定編碼;
(3)"+" 表示可以同時讀寫某個檔案
r+:讀寫(可讀,可寫)
w+:寫讀(可讀,可寫)
a+:寫讀(可讀,可寫)
(4)瞭解部分
x:只寫模式(不可讀;不存在則建立,存在則報錯)
x+:寫讀(可讀,可寫)
xb:以位元組的方式只寫模式(不可讀;不存在則建立,存在則報錯)
三、基本的操作檔案的方法
1.read():讀取所有內容,游標移動到檔案末尾;
f = open('1', 'r', encoding="UTF-8")
data = f.read()
print(data)
2.readline():讀取一行內容,游標移動到第二行首部;
f = open('1', 'r', encoding="UTF-8")
data1 = f.readline()
data2 = f.readline()
print(data1)
print(data2)
3.readlines():讀取每一行內容;存放於列表中;
f = open('1', 'r', encoding="UTF-8")
data = f.readlines()
print(data)
4.write():對檔案寫,需要自己寫換行符(針對文字模式的寫,不需要字元轉換;針對b模式的寫,需要字元轉換);
f = open('1', 'w', encoding="UTF-8")
f.write('HELLO\nhhh')
f.close()
f = open('1', 'wb')
f.write('HELLO\nhhh'.encode("UTF-8"))
f.close()
結果皆為如下:
5.writelines():以列表的形式對檔案寫,需要自己寫換行符(針對文字模式的寫,不需要字元轉換;針對b模式的寫,需要字元轉換);
f = open('1', 'w', encoding="UTF-8")
f.writelines(['aaa\n', 'bbb\n', 'ccc\n'])
f.close()
f = open('1', 'wb')
f.writelines([bytes('aaa\n', encoding='utf-8'), 'bbb\n'.encode('utf-8')])
f.close()
6.readable():判斷檔案是否可讀;
7.writable():判斷檔案是否可讀;
8.closed:判斷檔案是否關閉;
9.encoding:返回檔案檔案開啟使用的編碼;如果檔案開啟模式為b,則沒有該屬性;
10.flush():立刻將檔案內容從記憶體刷到硬碟;
11. name:返回檔案的檔名;
四、檔案內游標的移動
1.read(n):
(1)檔案開啟方式為文字模式時,代表讀取n個字元;
(2)檔案開啟方式為b模式時,代表讀取n個位元組;
2.tell():返回游標所在的位置;
3.seek():控制游標的移動(0:絕對位置移動,1:相對位置移動,2:末尾計起移動)其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的;
f = open('1', 'rb')
ofs = 10
print(f.tell())
f.seek(ofs, 0)
print(f.tell())
f.seek(ofs, 1)
print(f.tell())
f.seek(ofs, 0)
print(f.tell())
f.seek(ofs, 2)
print(f.tell())
4.truncate():截斷檔案(檔案的開啟方式必須可寫,但是不能用w或w+等方式開啟,因為那樣直接清空檔案了,所以truncate要在r+或a或a+等模式下測試效果);
f = open('1', 'r+')
data = f.truncate(10)
print(data)
f.close()
執行前:
執行後:
相關文章
- Python學習筆記|Python之檔案操作Python筆記
- Linux學習之檔案操作Linux
- python學習之讀寫檔案Python
- 7、python之檔案操作Python
- python菜鳥教程學習13:檔案操作Python
- Python學習筆記|Python之特殊檔案Python筆記
- Python學習之旅(十七)Python
- python學習筆記:第8天 檔案操作Python筆記
- 零基礎學習 Python 之檔案Python
- Python3之檔案操作filePython
- Python操作檔案Python
- 從零開始的Python學習Episode 7——檔案基本操作Python
- python–模組之os操作檔案模組Python
- python_檔案操作Python
- 1.4.0 Python檔案操作Python
- Python 檔案操作(一)Python
- python 操作整理檔案Python
- Python的檔案操作Python
- Python檔案的操作Python
- python第三方庫——xlrd和xlwt操作Excel檔案學習PythonExcel
- python對檔案的操作Python
- python3.7 檔案操作Python
- python--檔案操作指南Python
- Python 檔案、目錄操作Python
- Python基礎——檔案操作Python
- python檔案讀寫操作Python
- 18 Python如何操作檔案?Python
- python 檔案操作入門Python
- Python基礎知識之檔案的讀取操作Python
- Golang 原始碼學習(一) —— os/file 檔案操作Golang原始碼
- python交教程4:檔案操作Python
- Python:檔案操作詳細教程Python
- Python批處理:檔案操作Python
- python file 檔案操作筆記Python筆記
- Python OS模組操作檔案Python
- python pyyaml操作yaml配置檔案PythonYAML
- 學習ASP.NET Core Blazor程式設計系列十七——檔案上傳(上)ASP.NETBlazor程式設計
- Python的十七個騷操作,你都學會了嗎?(上)Python