1. 程式人生 > >學習筆記四 檔案讀寫,集合,元組,函式

學習筆記四 檔案讀寫,集合,元組,函式

一、檔案讀寫幾種模式總結:

讀模式: r 開啟不存在的檔案會報錯、不能寫(不能呼叫write方法),可以讀(能呼叫read方法)

寫模式: w # 1、開啟不存在的檔案,會新建一個檔案,但每次開啟都會清空原有檔案內容

      # 2、不能讀(不能呼叫read方法),可以寫(能呼叫write方法)

追加模式 a # 1、開啟不存在的檔案,會新建,可以寫(可以呼叫write方法)

      # 2、不能讀(不能呼叫read方法)

讀寫模式 r+ # 1、能寫能讀,但每次都是重頭寫入,會覆蓋原有的檔案內容

      # 2、開啟不存在檔案的時候會報錯

寫讀模式 w+ # 1、能讀能寫

      # 2、但讀不到內容,因為每次開啟w先把檔案內容清空

追加讀模式 a+ # 1、能讀能寫

       # 2、每次讀的時候,檔案指標是在檔案末尾。如果需要重頭讀起,需要f.seek(0)將指標移到檔案開始,當檔案寫入資料後,在沒有關閉檔案前,此時寫入的資料還在記憶體中,沒有寫入磁碟,當檔案在其他地方開啟的時候,是看不到新寫入的資料,如果希望新寫入的資料立即生效寫入磁碟,需要用f.flush(),檔案末尾用f.tell()

讀取檔案內容三個方法:

比如有檔案test.txt

 


1.read():方法用於從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。

 

2.readline():一次讀取檔案的一行。如果檔案指標在檔案開始位置,則讀取的是第一行資料。

 

3.readlines():讀取檔案的所有行,並且以list形式返回

 

4.直接迴圈檔案物件:當檔案比較大的時候可以用此方法

                  

 

檔案的寫操作:

 1.write(str):引數必須是個字串,寫入的內容就是str

 2.writelines(sequence):引數是一切可迭代的(字串,list,元組,set,dict)的物件,其執行原理是將sequence的內容以遍歷的方式依次讀取寫入

 

5.檔案操作小程式碼:監控日誌

 

 

6.檔案操作小程式碼:修改檔案

with 操作會自動呼叫close(),無需手動寫關閉檔案操作

第一種方式:全部讀取檔案的內容後修改其內容,將原有檔案內容刪除,然後將修改的內容直接複製寫進去

第二種方式(推薦):建立一個新的空檔案,將修改的內容寫入到新檔案後,再刪除原有的舊檔案,將新檔案更名成舊檔名

 

 

 

二.集合

1.集合的重要屬性:可以自動去重!(劃重點)

2.集合初始化:s=set(),集合也是用{}括起來的形式,但不是鍵值對。空的集合必須用set()初始化不能用{},因為{}表示空的字典

3.集合的幾種運算:

  1.交集:找出集合之間相同的元素

  兩種方式:intersection()和&

   

 

    2.並集:把2個集合合併到一起,然後去除重複

  兩種方式:union和|

   

 

  3.差集:前面一個有,後面一個沒有的

   兩種方式:difference和 -

 

 

  

  4.對稱差集: 只在一個集合裡面出現過的,都給你整出來(除交集以外的那些元素)

  兩種方法:symmetric和^

 

 

4.集合元素新增:add,無返回值

 

 

5.集合元素刪除:因為集合是無序的,所以無法通過指定下標來操作(沒有下標這個概念)

  1.pop:隨機刪除,返回刪除的那個值,不能帶任何引數

  2.remove:指定元素刪除,沒有返回值

 

6.集合的遍歷:

  

 

 

三.string模組的幾個方法:

 

 

 

四.元組:元組也是一個有序的序列,特點是值不能修改

 1.元組的初始化:一定要用逗號間隔

 

 

五.隨機操作常用方法:

 需要匯入模組:import random

 1.randint(a,b):隨機一個整數,範圍左閉右閉

   random.randint(1,23):隨機一個範圍在1和23直接的整數

 2.choice(seq):從一個有序的序列(不包括字典和集合)中隨機選一個值返回,返回型別同返回元素的型別

 3.sample(seq,n):從一個有序的序列(不包括字典和集合)中隨機選n個值組成list返回

 4.shuffle(list):引數只能是list,打亂一個list的順序,無返回值

 5.uniform(a,b) :a-b直接隨機取小數

 

 

六.函式簡單介紹:

函式以def定義,函式名(),:結尾,預設返回值為None,也可以自定義返回值

函式的形參:函式定義的時候括號裡帶的引數

函式的實參:函式呼叫時傳入的實際引數

函式的變數:函式裡面定義的變數,作用域只在函式體內,函式體外不可見

函式的返回值:返回值作為函式的一個處理結果返回給呼叫者