1. 程式人生 > >Python 學習之文件對象的屬性和方法簡介

Python 學習之文件對象的屬性和方法簡介

bject order 直接 rsyslogd cep com except pri and

python的文件處理和相關輸入輸出能力。介紹文件對象(它的內建函數,內建方法和屬性),標準文件,同時討論文件系統的訪問方法,文件執行,以及相關文件模塊。 一、內建函數open 語法:file_object = open(file_name,access_mode=‘r‘,buffering=-1) file_name 要打開的絕對路徑或者相對路徑文件名 access_mode 處理文件的模式,常規的模式有r、w、a、r+、w+、a+。其中r模式的前提是系統本身存在該文件,讀取模式。w模式表示寫模式,並且會將文件內容清空,a模式表示追加模式 buffering 可選參數,0表示不緩沖,1表示緩沖一行數據 二、文件內建方法: 1、輸出 f1.read() 該方法用來直接讀取字節到字符串中,可以指定讀取數目,默認是文件將被讀取直至末尾,例如 >>> f1 = open(‘/var/log/messages‘,‘r‘) >>> f1.read() ‘Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed\nDec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns\nDec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception\n‘ readline() 該方法用來讀取文件的一行 >>> f1 = open(‘/var/log/messages‘,‘r‘) >>> f1.readline() ‘Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed\n‘ f1.readlines() 該方法用來將讀取的所有行作為一個字符串列表返回 >>> f1 = open(‘/var/log/messages‘,‘r‘) >>> f1.readlines() [‘Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed\n‘, ‘Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns\n‘, ‘Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception\n‘] next() 該函數主要是用來逐行讀取 >>> f1.next() ‘Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed\n‘ >>> f1.tell() 368 >>> f1.next() ‘Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns\n‘ >>> f1.next() ‘Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception\n‘ >>> f1.next() ‘Dec 25 06:12:51 xiangys0134_1 abrt: detected unhandled Python exception\n‘ >>> f1.next() //註意:如果已經讀取到末尾行再用這個方法就會返回錯誤 Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration 2、輸入 write() 該方法會將文件裏之前的內容清空。 >>> f1 = open(‘/tmp/messages‘,‘w‘) >>> f1.write(‘test\nffffff\n‘) >>> f1.close() 技術分享圖片 三、文件叠代 1、for循環叠代,使用函數eadlines() >>> f1 = open(‘/tmp/messages‘,‘r‘) >>> lines = f1.readlines() //註意:這種方法如果文件內容非常多的話,不建議這麽操作 >>> for i in lines: ... print i, ... Dec 24 09:43:15 xiangys0134_1 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="983" x-info="http://www.rsyslog.com"] rsyslogd was HUPed Dec 24 20:45:50 xiangys0134_1 kernel: hrtimer: interrupt took 2068298 ns Dec 24 22:14:08 xiangys0134_1 abrt: detected unhandled Python exception Dec 25 06:12:51 xiangys0134_1 abrt: detected unhandled Python exception 2、文件叠代器進行叠代

Python 學習之文件對象的屬性和方法簡介