標籤:first cte height 類型 border 預設 efault span 系統
檔案操作
註:不能把open語句放在try塊裡,因為當開啟檔案出現異常時,檔案對象file_object無法執行close()方法。
1.開啟檔案
(相當於案頭的捷徑)f=open(檔案名稱,模式預設是制度模式"r")
data = f.red()
f.colse()--------------開一個必須關一個要不然消耗記憶體
print(data)
模式:r唯讀w會覆蓋唯寫x唯寫a追加
- r ,唯讀模式【預設】
- w,唯寫模式【不可讀;不存在則建立;存在則清空內容;】
- x, 唯寫模式【不可讀;不存在則建立,存在則報錯】
- a, 追加模式【不可讀; 不存在則建立;存在則只追加內容;】
"+" 表示可以同時讀寫某個檔案
- r+, 讀寫【可讀,可寫】
- w+,寫讀【可讀,可寫】
- x+ ,寫讀【可讀,可寫】
- a+, 寫讀【可讀,可寫】
"b"表示以位元組的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
註:以b方式開啟時,讀取到的內容是位元組類型,寫入時也需要提供位元組類型
開啟檔案-->位元組
q= bytes(data,enconding=“utf-8")
1隻讀,rb(預設開啟的就是位元組)
f=open("ha.log","rb")
data=f.read()
f.close()
print(type(data))
2.唯寫wb
f=open("ha.log")
2.檔案常用的可執行方法補充(檔案內建函數)
f.flush() 重新整理
f.read(3) 意識是讀取3個字元,其他的函數都是以位元組為單位seek,tell,read,truncate
f.open(file,mode buffering) file相當於檔案的位置 、路徑,mode檔案的開啟模式,buffering可取值0,1,》1三個
0代表buffer關閉
mode取值
| Character |
Meaning |
| ‘r‘ |
open for reading (default) |
| ‘w‘ |
open for writing, truncating the file first |
| ‘a‘ |
open for writing, appending to the end of the file if it exists |
| ‘b‘ |
binary mode |
| ‘t‘ |
text mode (default) |
| ‘+‘ |
open a disk file for updating (reading and writing) |
| ‘U‘ |
universal newline mode (for backwards compatibility; should not be used in new code) |
1 r或rt 預設模式,文字模式讀 2 rb 二進位檔案 3 w或wt 文字模式寫,開啟前檔案儲存體被清空 4 wb 二進位寫,檔案儲存體同樣被清A 5 a 追加模式,只能寫在檔案末尾 6 a+ 可讀寫入模式,寫只能寫在檔案末 7 w+ 可讀寫,與a+的區別是要清空檔案內容 8 r+ 可讀寫,與a+的區別是可以寫到檔案任何位置
encoding表示返回的資料採用編碼方式,系統預設gbk python預設utf-8
newline 可以採取的值,有none \n\r
file()開啟的是類和open()開啟的是檔案
-----------------------------------------------------------------------------------------------------------------------------------------------------------
1、開啟檔案讀寫
f=open(‘d:\a.txt‘,"r")
f.read(4)-------------#讀取四個位元組
f.read()--------------#讀取到檔案末尾
f.readline讀一行
f.readline讀所有行
line‘.strip() 刪除分行符號
f.write()
f.write()
f.writeline()
f.writelines()
f.seek(offset,wherer)
f.r
file的其他方法:
F.close()
#關閉檔案。python會在一個檔案不用後自動關閉檔案,不過這一功能沒有保證,最好還是養成自己關閉的習慣。如果一個檔案在關閉後還對其進行操作會產生ValueError
F.flush()
#把緩衝區的內容寫入硬碟
F.fileno()
#返回一個長整型的”檔案標籤“
F.isatty()
#檔案是否是一個終端裝置檔案(unix系統中的)
F.tell()
#返迴文件操作標記的當前位置,以檔案的開頭為原點
F.next()
#返回下一行,並將檔案操作標記位移到下一行。把一個file用於for ... in file這樣的語句時,就是調用next()函數來實現遍曆的。
F.seek(offset[,whence])
#將檔案打操作標記移到offset的位置。這個offset一般是相對於檔案的開頭來計算的,一般為正數。但如果提供了whence參數就不一定了,whence可以為0表示從頭開始計算,1表示以當前位置為原點計算。2表示以檔案末尾為原點進行計算。需要注意,如果檔案以a或a+的模式開啟,每次進行寫操作時,檔案操作標記會自動返回到檔案末尾。
F.truncate([size])
#把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去。
python修鍊6