Python文件操作及內(nèi)置函數(shù)flush原理解析
1、打開(kāi)文件得到文件句柄并賦值給一個(gè)變量
2、通過(guò)句柄對(duì)文件進(jìn)行操作
3、關(guān)閉文件
示例文件
'你好呀'
我是于超
嗯
再見(jiàn)
文件操作基本流程
f=open('chenli',encoding='utf-8')
first_line=f.readline()
print('第一行是:',first_line)print('我是分割線(xiàn)'.center(9,'-')) #9代表字符串總共9長(zhǎng)度
data=f.read() #讀取所有內(nèi)容
print(data)
#不指定打開(kāi)編碼,即python解釋器默認(rèn)編碼,python2.*為ascii,python3.*為utf-8
f=open('chenli.txt')
f.read()f=open('chenli.txt',encoding='utf-8')
f.read()
2.3 文件打開(kāi)模式
文件句柄 = open ('文件路徑','模式')
打開(kāi)文件時(shí),需要指定文件路徑和以何等方式打開(kāi)文件,打開(kāi)后,即可獲取該文件句柄,日后通過(guò)此文件句柄對(duì)該文件操作。
打開(kāi)文件的模式有:
- r ,只讀模式【默認(rèn)模式,文件必須存在,不存在則拋出異常】
- w,只寫(xiě)模式【不可讀;不存在則創(chuàng)建;存在則清空內(nèi)容】
- x, 只寫(xiě)模式【不可讀;不存在則創(chuàng)建,存在則報(bào)錯(cuò)】
- a, 追加模式【可讀; 不存在則創(chuàng)建;存在則只追加內(nèi)容】
"+" 表示可以同時(shí)讀寫(xiě)某個(gè)文件
- r+, 讀寫(xiě)【可讀,可寫(xiě)】
- w+,寫(xiě)讀【可讀,可寫(xiě)】
- x+ ,寫(xiě)讀【可讀,可寫(xiě)】
- a+, 寫(xiě)讀【可讀,可寫(xiě)】
"b"表示以字節(jié)的方式操作
- rb 或 r+b
- wb 或 w+b
- xb 或 w+b
- ab 或 a+b
注:以b方式打開(kāi)時(shí),讀取到的內(nèi)容是字節(jié)類(lèi)型,寫(xiě)入時(shí)也需要提供字節(jié)類(lèi)型,不能指定編碼
2.4 文件內(nèi)置函數(shù)flush
flush原理:
- 文件操作是通過(guò)軟件將文件從硬盤(pán)讀到內(nèi)存
- 寫(xiě)入文件的操作也都是存入內(nèi)存緩沖區(qū)buffer(內(nèi)存速度快于硬盤(pán),如果寫(xiě)入文件的數(shù)據(jù)都從內(nèi)存刷到硬盤(pán),內(nèi)存與硬盤(pán)的速度延遲會(huì)被無(wú)限放大,效率變低,所以要刷到硬盤(pán)的數(shù)據(jù)我們統(tǒng)一往內(nèi)存的一小塊空間即buffer中放,一段時(shí)間后操作系統(tǒng)會(huì)將buffer中數(shù)據(jù)一次性刷到硬盤(pán))
- flush即,強(qiáng)制將寫(xiě)入的數(shù)據(jù)刷到硬盤(pán)
滾動(dòng)條:
import sys,time for i in range(10): sys.stdout.write('#') sys.stdout.flush() time.sleep(0.2)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python 相對(duì)路徑和絕對(duì)路徑及寫(xiě)法演示
這篇文章主要介紹了Python 相對(duì)路徑絕對(duì)路徑的相關(guān)知識(shí),結(jié)合實(shí)例代碼介紹了Python 相對(duì)路徑、絕對(duì)路徑的寫(xiě)法實(shí)例演示,需要的朋友可以參考下2023-02-02python文件操作的基礎(chǔ)詳細(xì)講解(write、read、readlines、readline)
使用python來(lái)讀寫(xiě)文件是非常簡(jiǎn)單的操作,下面這篇文章主要給大家介紹了關(guān)于python文件操作的基礎(chǔ)詳細(xì)資料,包括write、read、readlines、readline等相關(guān)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04對(duì)Python subprocess.Popen子進(jìn)程管道阻塞詳解
今天小編就為大家分享一篇對(duì)Python subprocess.Popen子進(jìn)程管道阻塞詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10