Python 學習之文件對象的屬性和方法簡介
阿新 • • 發佈:2018-01-02
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 學習之文件對象的屬性和方法簡介