python中的文件操作

一. 文件讀寫

1>Python 內置了讀寫文件的函數,用法和 C 是兼容的

2>操作系統不允許普通的程序直接操作磁盤,所以,讀寫文件就是請求操作系統打開一個文件對象(又稱文件描述符),再通過操作系統提供的接口對這個文件對象操作

文件操作過程:打開--->操作--->關閉

1. 讀取文件


注:

<1>. 打開文件返回值是一個文件對象,如果文件不存在,open() 函數就會拋出一個 IOError 的錯誤,並且給出錯誤碼和詳細的信息告訴你文件不存在

<2>. 如果文件打開成功,調用 read() 方法可以一次讀取文件的全部內容

<3>. 文件使用完畢後必須關閉,因爲文件對象會佔用操作系統的資源

2. 文件寫入

1> 當以寫的方式打開文件,首先清空文件所有內容

2> 當以寫的方式打開文件,只能寫入,不能讀取

3. 文件附加寫a

注:文件以a方式打開,表示附加寫,不可讀

4. 文件讀寫r+


注:文件以r+方式打開,可進行讀寫兩種操作

5. 文件讀寫w+


注:文件以w+方式打開,文加先清空,可進行讀寫兩種操作

6. 文件讀寫a+


注:文件以a+方式打開,文件不清空,可進行讀寫兩種操作

附:

1>不可讀方式打開文件方式:w;a

2>文件不存在會新建的打開文件方式:w;w+;a;a+

3>如果讀取的文件是一個非文本文件,在原有模式上加b;eg: 'rb',,'rb+', 'wb','wb+', 'ab', 'ab+'

理解模式不同的三個點:

1. 文件不存在,是否報錯

2. 文件是否只讀,只寫,還是讀寫

3. 文件清空原有內容還是追加文本信息

###文件讀寫###

r 以讀的方式打開,定位到文件開頭 , 默認的 mode
r+ 以讀寫的方式打開,定位文件開頭 , 可以寫入內容到文件
w 以寫的方式打開,打開文件的時候會清空文件的內容,並且不能讀
w+ 以讀寫的方式打開,定位到文件頭,並且打開文件的時候也會清空文件的內容
a 以寫的方式打開,定位到文件的末尾,是一個追加的操作 , 但並不允許讀
a+ 以讀寫的方式打開,定位到文件的末尾,追加的方式

二. 文件的其他操作

1. 文件的指針-f.seek()

seek()需要傳兩個參數:

第一個:偏移量;偏移量>0,代表向右移動的字符,反之表示向左移動的字符

第二個:0:文加開頭;1:當前位置;2:文件末尾


注:f.tell()表示當前指針所在位置

2. f.readline()與f.readlines()

f.read()方法如果文件小,調用方便

f.readline()方法依次讀取文件,僅返回一行文件信息

f.readlines()方法以列表方式返回文件信息,默認保留換行符,因此可以採用.strip方法過濾


3. f.writelines()

f.writelines()可以多行寫入文本信息


4. 文件對象f是可迭代對象

判斷是否可迭代方法:

1>isinstance(f,Iterable)


2>for 循環


三. 文件內置屬性

f.closed     #返回 bool 值,判斷文件對象的狀態

f.mode      #看文件的打開模式

f.name      #查看文件名


四. with語句


注:with...as打開文件不需要再次進行關閉,建議儘可能使用此方法

eg1:顯示文件的所有行,但忽略以#開頭的行


eg2:把/etc/passwd文件中所有的“root”字符串替換爲“sky”,將更換後的另存爲/tmp/passwd文件


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章