一.文件的打開,open函數 打開模式有很多種 1. 'r': 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是預設模式。 2. 'r+': 打開一個文件用於讀寫。文件指針將會放在文件的開頭,但寫入內容會寫到文件內容末尾。 3. 'w': 打開一個文件只用於寫入。如果該文件已存在則打開文件,並 ...
一.文件的打開,open函數
f = open(file_name,mode)#創建文件對象
打開模式有很多種
1. 'r': 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是預設模式。
2. 'r+': 打開一個文件用於讀寫。文件指針將會放在文件的開頭,但寫入內容會寫到文件內容末尾。
3. 'w': 打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
4. 'w+': 打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
5. 'a': 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
6. 'a+': 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。讀文件時從文件內容的末尾讀,因為文件指針放在文件的結尾。
with open as語句
不必寫f.close(),會自動在末尾關閉文件,即使在文件操作中發生錯誤
with open('/path/to/file', 'r') as f: print(f.read())
二.文件對象的屬性
file.closed : 如果文件已被關閉返回true,否則返回false。
file.mode : 返回被打開文件的訪問模式。
file.name : 返迴文件的名稱。
三.文件的關閉
file_object.close()
四.文件的讀寫操作
write方法
file_object.write(string)
read方法
file_object.read(count)#count為位元組數,不填則讀到文件末尾
readlines方法用於讀取所有行
file_object.readlines( )
#文件內容如下 #12345 #67890 #09876 #54321 p=f.readlines() print(p) #輸出為['12345\n', '67890\n', '09876\n', '54321']
五.文件的定位
tell方法
print(file_object.tell())#輸出文件內的當前位置, 即下一次的讀寫會發生在文件開頭多少位元組之後。 #根據編碼的不同,每個漢字所占的位元組也不同,utf-8中一個漢字占3個位元組,此處的數量和read函數的參數意義不同,read函數參數中1代表一個字元
#例如以下為文件內容
#這是漢字
print(file_object.read(3))#輸出為這是漢
seek方法
seek(offset ,from)方法改變當前文件的位置。offset變數表示要移動的位元組數。from變數指定開始移動位元組的參考位置。
如果from被設為0,這意味著將文件的開頭作為移動位元組的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那麼該文件的末尾將作為參考位置。
file_object.seek(3)#from參數預設為0
六.截斷文件
truncate() 方法用於截斷文件,如果指定了可選參數 size,則表示截斷文件為 size 個位元組。 如果沒有指定 size,則從當前位置起截斷;截斷之後 size 後面的所有字元被刪除。
file_object.truncate(size)
七.flush方法
flush() 方法是用來刷新緩衝區的,即將緩衝區中的數據立刻寫入文件,同時清空緩衝區,不需要是被動的等待輸出緩衝區寫入。
一般情況下,文件關閉後會自動刷新緩衝區,但有時你需要在關閉前刷新它,這時就可以使用 flush() 方法。
file_object.flush()
未完待續