簡單介紹python程式設計之檔案讀寫
導讀 | 函式 open() 返回 檔案物件,通常的用法需要兩個引數: open(filename, mode) 。 |
f = open('workfile', 'w')
第一個引數是一個含有檔名的字串。第二個引數也是一個字串,含有描述如何使用該檔案的幾個字元。mode 為 'r' 時表示只是讀取檔案; 'w' 表示只是寫入檔案(已經存在的同名檔案將被 刪掉); 'a' 表示開啟檔案進行追加,寫入到檔案中的任何資料將自動新增到末尾。 'r+' 表示打 開檔案進行讀取和寫入。mode 引數是可選的,預設為 'r' 。
通常,檔案以 文字 開啟,這意味著,你從檔案讀出和向檔案寫入的字串會被特定的編碼方式(預設是UTF-8)編碼。模式後面的 'b' 以 二進位制模式 開啟檔案:資料會以位元組物件的形式讀出和寫入。這種模式應該用於所有不包含文字的檔案。在文字模式下,讀取時預設會將平臺有關的行結束符(Unix上是 \n , Windows上是 \r\n )轉換為\n 。
在文字模式下寫入時,預設會將出現的 \n 轉換成平臺有關的行結束符。這種暗地裡的修改對 ASCII 文字檔案沒有問題,但會損壞 JPEG 或 EXE 這樣的二進位制檔案中的資料。使用二進位制模式讀寫此類檔案時要特別小心。
本節中的示例都預設檔案物件 f 已經建立。要讀取檔案內容,需要呼叫 f.read(size) ,該方法讀取若干數量的資料並以字串形式返回其內 容,size 是可選的數值,指定字串長度。如果沒有指定 size 或者指定為負數,就會讀取並返回整 個檔案。當檔案大小為當前機器記憶體兩倍時,就會產生問題。反之,會盡可能按比較大的 size 讀取 和返回資料。如果到了檔案末尾, f.read() 會返回一個空字串( '' ):
>>> f.read() 'This is the entire file.\n' >>> f.read() ''
f.readline() 從檔案中讀取單獨一行,字串結尾會自動加上一個換行符( \n ),只有當檔案最後一行沒有以換行符結尾時,這一操作才會被忽略。這樣返回值就不會有混淆,如果 f.readline() 返回一個空字串,那就表示到達了檔案末尾,如果是一個空行,就會描述為 '\n' ,一個只包含 換行符的字串:
>>> f.readline() 'This is the first line of the file.\n' >>> f.readline() 'Second line of the file\n' >>> f.readline() ''
你可以迴圈遍歷檔案物件來讀取檔案中的每一行。這是一種記憶體高效、快速,並且程式碼簡介的方式:
>>> for line in f: ... print(line, end='') ... This is the first line of the file. Second line of the file
如果你想把檔案中的所有行讀到一個列表中,你也可以使用 list(f) 或者 f.readlines() 。f.write(string) 方法將 string 的內容寫入檔案,並返回寫入字元的長度:
>>> f.write('This is a test\n') 15
想要寫入其他非字串內容,首先要將它轉換為字串:
>>> value = ('the answer', 42) >>> s = str(value) >>> f.write(s) 18
f.tell() 返回一個整數,代表檔案物件在檔案中的指標位置,該數值計量了自檔案開頭到指標處的位元數。需要改變檔案物件指標話話,使用 f.seek(offset,from_what) 。指標在該操作中從指定的引用位置移動 offset 位元,引用位置由 from_what 引數指定。 from_what 值為 0 表示自檔案起始處開始,1 表示自當前檔案指標位置開始,2 表示自檔案末尾開始。from_what 可以忽略,其預設值為零,此時從檔案頭開始:
>>> f = open('workfile', 'rb+') >>> f.write(b'0123456789abcdef') 16 >>> f.seek(5) # Go to the 6th byte in the file 5 >>> f.read(1) b'5' >>> f.seek(-3, 2) # Go to the 3rd byte before the end 13 >>> f.read(1) b'd'
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2851361/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檔案管理簡單介紹
- javascript讀寫cookie操作簡單介紹JavaScriptCookie
- python讀寫excel檔案簡單應用PythonExcel
- js DSL超程式設計簡單介紹JS程式設計
- JavaScript 模組化程式設計簡單介紹JavaScript程式設計
- Linux 程式設計工具簡單介紹Linux程式設計
- 簡單介紹python如何在檔案中部插入資訊Python
- python之 檔案讀與寫Python
- linux讀寫檔案 簡單版Linux
- javascript物件導向程式設計概念簡單介紹JavaScript物件程式設計
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- javascript如何實現模組程式設計簡單介紹JavaScript程式設計
- Python簡單介紹Python
- Python(簡單圖形和檔案處理)程式設計Python程式設計
- 使XML程式設計更簡單---JDOM介紹及程式設計指南 (轉)XML程式設計
- 程式設計讀寫CAD檔案驗證程式設計
- 寫給 Python 程式設計師看的 Rust 介紹Python程式設計師Rust
- python學習之讀寫檔案Python
- Python之檔案讀寫小練Python
- javascript設計模式單例模式簡單介紹JavaScript設計模式單例
- 動態載入js檔案簡單介紹JS
- 關於PHP檔案操作的簡單介紹PHP
- Python 簡明教程 --- 24,Python 檔案讀寫Python
- 01 Python3程式設計之程式設計語法簡介Python程式設計
- 設計模式和反模式簡單介紹設計模式
- Python之檔案讀取和寫入Python
- 簡單介紹Shell指令碼之檔案批次建立與修改的方法指令碼
- 教你如何運用python實現簡單檔案讀寫函式Python函式
- js讀寫二進位制檔案簡單程式碼例項JS
- javascript讀寫二進位制檔案簡單程式碼例項JavaScript
- 「Python」:檔案讀寫Python
- Python——檔案讀寫Python
- Python 讀寫檔案Python
- Python讀寫檔案Python
- 簡單介紹Linux環境變數檔案Linux變數
- css引入外部css檔案的方式簡單介紹CSS
- jQuery動態載入js檔案簡單介紹jQueryJS
- js動態載入js檔案簡單介紹JS