Python 文件對象函數
1)
內置函數 open() 用於打開和建立文件對象編碼
open(name,[,mode[,bufsize]]) 文件名、模式、緩衝區參數 mode: r 只讀 w 寫入 a 附加 使用 + 同時支持輸入、輸出操做 r+ w+ a+ 附加 b 表示以二進制方式打開 rb wb ab bufsize: 0 禁用緩衝 1 使用緩衝,僅緩衝一行數據 負數 使用系統默認緩衝 正數 指定緩衝空間大小 例如: file1 = open('/etc/fstab',r+) 注意使用 r r+ 不能打開不存在的文件會產生IO錯誤
2)文件的屬性spa
f.closed 顯示文件是否關閉 f.name 顯示當前名稱 f.encoding 編碼格式 f.mode 當前文件打開模式 f.softspace 在使用print語句時,是否在一個值以前打印空格,默認爲0。若需打印則 f.softspace = 1 f.newlines 返回到當前爲止讀取到的行結束符字串,若無行分隔符則爲None
3)文件的方法指針
f.tell() 當前指針在文件中字節位置 f.tell(0) f.next() 迭代顯示,不會移動指針 f.close() 關閉文件 f.fileno() 返回文件描述符 f.readline() 讀取返回一行,會移動指針 f.readlines() 以列表形式返回全部行 f.read() 讀n個字節 f.read(10) f.write() 寫入數據 注意: 文件方法read()等在讀取文件時,會一併讀取其行結束符 文件方法write()執行寫出操做時,不會自動爲其添加行結束符 f.writelines() 將列表中全部字串當作一行寫入 import os l1 = os.listdir('/etc') f1.writelines(l1) f1.flush() 以上輸出爲一行 l2 = [ i + '\n' for i in os.listdir('/etc')] f1.writelines(l2) f1.flush() 此方法會保證每一個字串一行,用列表解析的方式在每次循環後加入換行符 f.isatty() 是否爲終端設備文件 f.truncate() 截取n個字節 f1.truncate(10) 截取10個字節 f1.truncate(f1.tell()) 只截取到當前指針處 f.seek(offset[,whence]) 指針偏移位置 whence: 起點 0: 從文件頭 1:從當前位置 2:從文件尾部 offset: 偏移量 f1.seek(0) 回到首部 f.flush() 清除輸出緩衝區