python學習筆記:基礎Day03

來源:互聯網
上載者:User

標籤:art   擴充   標識符   指標   簡介   use   記憶體   set   二進位   

一.檔案操作

      在磁盤上讀寫檔案的功能都是由作業系統提供的,現代作業系統不允許普通的程式直接操作磁碟。所以,讀寫檔案就是請求作業系統開啟一個檔案對象(通常稱為檔案描述符),然後,通過作業系統提供的介面從這個檔案對象中讀取資料(讀檔案),或者把資料寫入這個檔案對象(寫檔案)。

  1.讀檔案

    要以讀檔案的模式開啟一個檔案對象,使用Python內建的open()函數,傳入檔案名稱和標示符。

$ cat test.txt$ This is a file
$ life is short
$ use python------------------------f = open("test.txt",‘r‘) #開啟test.txt檔案

    檔案開啟成功之後,開始讀取檔案內容,我們可以使用read()來一次性將檔案內容讀到記憶體中。

print (f.read())>>This is a file>>life is short>>use python

    調用read()會一次性讀取檔案的全部內容,同樣的還有readlines(),一次性將檔案讀入記憶體中並逐行返回一個列表,如果讀取一個大檔案,這個時候記憶體可能就會撐不住了,因為可以通過反覆調用 read(size)來達到目標,當然,你也可以將檔案逐行讀取到記憶體中。

for line in f:    print(line.strip())>>This is a file>>life is short>>use python

    這種方式等同於readline(),對於大檔案的處理,更加高效。但當記憶體足夠開啟一個完成的檔案時,read()和readlines()則更有效率,readlines()更加適用於設定檔。

    因此,我們需要根據不同的情況,選擇最優的方式來進行讀操作。

    檔案操作的最後一步則是調用close()方法來關閉檔案,檔案使用完畢後必須關閉,因為檔案對象會佔用作業系統的資源,並且作業系統同一時間能開啟的檔案數量也是有限的。

    當然,為了避免某些時候忘記關閉檔案,python提供了一個更加簡介的檔案開啟檔案——with語句。

with open ("test.txt",‘r‘) as f:    print(f.read())

 

  2.寫檔案

    寫檔案和讀檔案是一樣的,唯一區別是調用open()函數時,傳入標識符‘w‘或者‘wb‘表示寫文字檔或寫二進位檔案

with open ("test.txt",‘w‘) as f:    f.write("hello world")--------------------------------------$ cat test.txt$ hello world

    你可以反覆調用write()來寫入檔案,但是務必要調用f.close()來關閉檔案。當我們寫檔案時,作業系統往往不會立刻把資料寫入磁碟,而是放到記憶體緩衝起來,閒置時候再慢慢寫入,如果想讓內容即時寫入,可以使用flush()。只有調用close()方法時,作業系統才保證把沒有寫入的資料全部寫入磁碟。忘記調用close()的後果是資料可能唯寫了一部分到磁碟,剩下的丟失了。所以,還是用with語句來得保險。

  3.檔案操作標識符

    r    以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
    r+  以讀寫方式開啟檔案。檔案指標將會放在檔案的開頭。
      w   以唯寫方式開啟檔案。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
    w+ 以讀寫方式開啟檔案。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
    a    以追加方式開啟檔案。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
    a+  以讀寫入模式開啟檔案。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

  4.檔案操作其他小tips 

    tell(): 列印當前位置

f = open("test",‘r‘)print(f.read(10))print(f.tell())f.close()>>This is a >>10    

      seek(offset [,from])方法改變當前檔案的位置。Offset變數表示要移動的位元組數。From變數指定開始移動位元組的參考位置。

    如果from被設為0,這意味著將檔案的開頭作為移動位元組的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那麼該檔案的末尾將作為參考位置。

 

f = open("test",‘r‘)f.seek(10,0)print(f.read())f.close()
>>file>>life is short>>use python

 

  

 

二.字元編碼與轉碼

    參考文章:

         http://www.cnblogs.com/yuanchenqi/articles/5956943.html

 

三.函數基礎

    函數是指將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可

    特性:

      1.減少重複代碼

      2.增加可擴充性

      3.方便日後維護

  1.定義一個函數   

def hello():                  #定義一個函數名為hello的函數    print("hello world\n")hello()                       #調用hello()函數>>hello world        

  2.函數參數

    形參變數只有在被調用時才分配記憶體單元,在調用結束時,即刻釋放所分配的記憶體單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數

    實參可以是常量、變數、運算式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值

 

未待完續...

python學習筆記:基礎Day03

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.