Python 文件操作
文件對(duì)象
文件對(duì)象不僅可以用來訪問普通磁盤文件,也可以訪問任何其他類型抽象層面上的文件。
文件內(nèi)建函數(shù)(open()和 file())
-open()內(nèi)建函數(shù)成功打開文件后返回一個(gè)文件對(duì)象暑中,否則引發(fā)一個(gè)錯(cuò)誤。當(dāng)操作失敗會(huì)返回一個(gè) IOError 異常
file_object = open(filename,access_mode ='r',buffering = -1);
可選參數(shù) buffering 用于指示訪問文件所采用的緩沖方式鞭执,其中 0 表示不緩沖项郊,1表示緩沖一行數(shù)據(jù)任何大于1的值代表使用給定值作為緩沖區(qū)大小
file() 和 open()的功能是一樣的
通用換行符支持(UNS)
當(dāng)你使用 'U'標(biāo)志打開文件的時(shí)候,所有的行分隔符通過 python 的輸入方法返回時(shí)都會(huì)被替換為換行符锰镀,
文件內(nèi)建方法
open()成功執(zhí)行并返回一個(gè)文件對(duì)象之后娘侍,所有對(duì)該文件的后續(xù)操作都將通過這個(gè)“句炳”進(jìn)行,文件方法可以分為四類:輸入泳炉,輸出憾筏,文件內(nèi)移動(dòng)及雜項(xiàng)操作。
輸入
read()方法用來直接讀取字節(jié)到字符串中花鹅,最多讀取給定數(shù)目個(gè)字節(jié)氧腰,如果沒有給定 size 參數(shù)或者 size 值為負(fù),文件將被讀取到末尾.
readline() 方法讀取打開文件的一行(讀取下個(gè)行結(jié)束符之前的所有字節(jié))刨肃,然后整行古拴,包括行結(jié)束符,作為字符串返回真友。
readlines() 方法并不像其他兩個(gè)輸入方法一樣返回一個(gè)字符串黄痪,他會(huì)去讀取所有行然后把它們作為一個(gè)字符串列表返回,
輸出
write()
內(nèi)建方法的功能與 read()相反盔然,他把含有文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)快的字符串寫入到文件中去桅打,注意,在寫入時(shí)并不會(huì)自動(dòng)加入行結(jié)束符愈案,應(yīng)該在向文件寫入數(shù)據(jù)前自己完成挺尾。
文件內(nèi)移動(dòng)
seek()
方法可以在文件中移動(dòng)文件指針到不同的位置, offset 字節(jié)代表相對(duì)于某個(gè)位置偏移量站绪,位置默認(rèn)為0遭铺,代表從文件開頭算去,1表示從當(dāng)前位置算起,2代表從文件末尾算起
文件內(nèi)建屬性
文件對(duì)象除了方法之外掂僵,還有一些數(shù)據(jù)屬性航厚,這些屬性保存了文件對(duì)象相關(guān)的附加數(shù)據(jù)
- file.closed 表示文件已經(jīng)被關(guān)閉
- file.encoding 文件所使用的編碼
- file.mode 文件打開時(shí)的訪問模式
- file.name 文件名
標(biāo)準(zhǔn)文件
一般來說,只要程序一執(zhí)行锰蓬,就可以訪問3個(gè)標(biāo)準(zhǔn)文件幔睬,他們分別是標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出芹扭,標(biāo)準(zhǔn)錯(cuò)誤麻顶。
命令行參數(shù)
sys 模塊通過 sys.argv 屬性提供了對(duì)命令行參數(shù)的訪問,命令行參數(shù)是調(diào)用某個(gè)程序時(shí)除程序名以外的其他參數(shù)舱卡,
文件系統(tǒng)
對(duì)于文件的訪問大多通過 python 的 os 模塊實(shí)現(xiàn)辅肾,該模塊是 python 訪問操作系統(tǒng)功能的主要接口,os 模塊實(shí)際上只是真正加載的模塊的前端轮锥,而真正的那個(gè)模塊還是要依賴于具體的操作系統(tǒng)矫钓。
os.path 主要針對(duì)路徑名。os 模塊的文件/目錄訪問函數(shù)
- mkfifo()/mknod() 創(chuàng)建命名管道/創(chuàng)建文件系統(tǒng)節(jié)點(diǎn)舍杜。
- remove()/unlink() 刪除文件
- rename()/renames() 重命名文件
- stat() 返回文件信息