本章的主要內容是 python 的條件和迴圈語句以及與它們相關的部分. 我們會深入** if ,
while , for 以及與他們相搭配的 else , elif , break , continue 和 pass 語句.
檔案內建函式[open()和file()]
file_name 是包含要開啟的檔案名字的字串, 它可以是相對路徑或者絕對路徑. 可選變數
access_mode 也是乙個字串, 代表檔案開啟的模式. 通常, 檔案使用模式 'r', 'w', 或是 'a'
模式來開啟, 分別代表讀取, 寫入和追加. 還有個 'u' 模式, 代表通用換行符支援(見下).
使用 'r' 或 'u' 模式開啟的檔案必須是已經存在的. 使用 'w' 模式開啟的檔案若存在則首
先清空, 然後(重新)建立. 以 'a' 模式開啟的檔案是為追加資料作準備的, 所有寫入的資料都將
追加到檔案的末尾. 即使你 seek 到了其它的地方. 如果檔案不存在, 將被自動建立, 類似以 'w'
模式開啟檔案. 如果你是乙個 c 程式設計師, 就會發現這些也是 c 庫函式 fopen() 中使用的模式.
其它 fopen() 支援的模式也可以工作在 python 的 open() 下. 包括 '+' 代表可讀可寫, 'b'
代表二進位制模式訪問
ru 或 ua 以讀方式開啟, 同時提供通用換行符支援 (pep 278)
w 以寫方式開啟 (必要時清空)
a 以追加模式開啟 (從 eof 開始, 必要時建立新檔案)
r+ 以讀寫模式開啟
w+ 以讀寫模式開啟 (參見 w )
a+ 以讀寫模式開啟 (參見 a )
rb 以二進位制讀模式開啟
wb 以二進位制寫模式開啟 (參見 w )
ab 以二進位制追加模式開啟 (參見 a )
rb+ 以二進位制讀寫模式開啟 (參見 r+ )
wb+ 以二進位制讀寫模式開啟 (參見 w+ )
ab+ 以二進位制讀寫模式開啟 (參見 a+ )
a. python 2.3 中新增
fp = open('/etc/motd') # 以讀方式開啟 預設讀寫
open() 成功執行並返回乙個檔案物件之後, 所有對該檔案的後續操作都將通過這個"控制代碼"進
行. 檔案方法可以分為四類: 輸入, 輸出, 檔案內移動, 以及雜項操作
read() 方法用來直接讀取位元組到字串中, 最多讀取給定數目個位元組. 如果沒有給定 size
引數(預設值為 -1)或者 size 值為負, 檔案將被讀取直至末尾.
read() 方法用來直接讀取位元組到字串中, 最多讀取給定數目個位元組. 如果沒有給定 size
引數(預設值為 -1)或者 size 值為負, 檔案將被讀取直至末尾. 未來的某個版本可能會刪除此方
法.readline() 方法讀取開啟檔案的一行(讀取下個行結束符之前的所有位元組). 然後整行,包括行
結束符,作為字串返回. 和 read() 相同, 它也有乙個可選的 size 引數, 預設為 -1, 代表讀至
行結束符. 如果提供了該引數, 那麼在超過size 個位元組後會返回不完整的行.
readlines() 方法並不像其它兩個輸入方法一樣返回乙個字串. 它會讀取所有(剩餘的)行然
後把它們作為乙個字串列表返回.
readline和readlines,read都是用來讀取檔案內容,readline()每次讀取一行,當前位置移到下一行;readlines()讀取整個檔案所有行,儲存在乙個列表(list)變數中,每行作為乙個元素;read(size)從檔案當前位置起讀取size個位元組(如果檔案結束,就讀取到檔案結束為止),如果size是負值或省略,讀取到檔案結束為止,返回結果是乙個字串
readline()每次只讀取一行,通常比 .readlines()慢得多。僅當沒有足夠記憶體可以一次讀取整個檔案時,才應該使用.readline()。
當使用輸入方法如 read() 或者 readlines() 從檔案中讀取行時, python 並不會刪除行結束
符. 這個操作被留給了程式設計師. 例如這樣的**在 python 程式中很常見:
f = open('myfile', 'r')
data = [line.strip() for line in f.readlines()]
f.close()
類似地, 輸出方法 write() 或 writelines() 也不會自動加入行結束符. 你應該在向檔案寫
入資料前自己完成:
從檔案中讀取行的最好辦法是使用 file.readlines() 來讀取所有資料,
這樣程式設計師可以盡快釋放檔案資源. 如果不需要這樣做, 那麼程式設計師可以呼叫 file.readline()
一次讀取一行. 曾有一段很短的時間, file.xreadlines() 是讀取檔案最高效的方法.
還要提醒大家的是: print 語句預設在輸出內容末尾後加乙個換行符, 而在語句後加乙個逗號
就可以避免這個行為. readline() 和 readlines() 函式不對行裡的空白字元做任何處理(參見本章
練習), 所以你有必要加上逗號. 如果你省略逗號, 那麼顯示出的文字每行後會有兩個換行符, 其
中乙個是輸入是附帶的, 另個是 print 語句自動新增的
人生苦短,我用python
python是一種物件導向的解釋型計算機程式語言,由荷蘭人guido van rossum於1989年發明,第乙個公開發行版發行於1991年。python是純粹的自由軟體,源 和直譯器cpython遵循 gpl gnu general public license 協議 python語法簡潔清晰,特...
人生苦短,我用Python
畢設 寫完之後,整個人就無所事事。昨天給老闆發了封郵件,請他推薦些書讀一讀 老闆說,有空學學python吧 life is short,you need python q1 python當中對空格和tab鍵的區分很嚴格。a1 在format當中選擇 tabify region 解決該問題。q2 在p...
人生苦短,我用Python
第一篇 python基礎 之 變數 使用者互動 if條件語句 while迴圈語句 編碼 邏輯運算 第二篇 python基礎 之 int bool str 列表 元組 字典 第三篇 python基礎三 第四篇 思維導圖 第一篇 初始函式 第二篇 函式裝飾器 第三篇 迭代器,生成器 第四篇 內建函式 匿...