一. 文件讀寫
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:顯示文件的所有行,但忽略以#開頭的行