python 基礎教程之文件

python對文件的處理是很強大的

打開文件:

open

f = open(r'C:\test\something.txt')       #windows 下

還可以提供模式參數,來說明讀和寫

f = open(url,model)

值                                    描述
'r'                              讀模式
'w'                              寫模式(會清空原文件)
'a'                              追寫模式(在原文件後面追寫)
'b'                              二進制模式(可添加到其他模式中)
'+'                              讀/寫模式(可添加到其他模式中)

‘b’模式改變處理文件的方法,一般來說,對於文本文件,並不需要,而處理其它類型的文件,如聲音或圖像,應該在模式參數中添加‘b’

文件讀:

read

read方法讀取文件,默認是一個個的去讀,但也可以帶參數,讀指定個字符,會改變文件流,已讀取的會被刪除

readline

readline方法是一行行去讀,默認參數讀取到換行符爲止,使用參數時同read函數。會改變文件流,已讀取的會被刪除。

reandlines

readlines方法是一行行去讀,返回一個列表,每行作爲一個元素。會改變文件流,已讀取的會被刪除。

文件寫:

write

調用f.write(string)時,所提供的參數string會被追加到文件已存在部分的後面,沒有writeline方法

writelines

對比readlines方法,和它相反。注意不會增加新行,需要自己添加


#-----------------------創建文本
f = open('eple.txt','w')
f.write('hello world!\n')
f.write('By eple')
f.close()

#-----------------------對比read, readline, reandlines,這幾個函數都會改變f

def process(str):
    print 'Processing: ',str

f = open('eple.txt')
# str = f.readline()
# strs = f.readlines()

#-----------------------按字輸出
char = f.read(1)
while char:
    process(char)
    char = f.read(1)
f.close()


'''  效果同上'''
for char in f.read():
    process(char)
f.close()

''' 效果同上 '''
for char in f.readline():
    process(char)
f.close()

#-----------------------按行輸出
#-----------------------文件過大時,readlines太佔內存,可以用readline用代替
char = f.readline()
while char:
    process(char)
    char = f.readline()
f.close()


''' 效果同上 '''
for char in f.readlines():
    process(char)
f.close()

文件關閉:

每次處理完文件之後,一定要記住用

close

方法關閉文件


文件迭代:

參考上面的代碼。

但是對非常大的文件對象進行操作的時候,readlines會佔用太多內存,可以用while循環和readline方法代替。但是我們總是推薦用for循環。所以我們也可以

import fileinput
for line in fileinput.input('eple.txt'):
    process(line)

最推薦,最最優雅的迭代方法:

for line in f:
    process(line)
f.close()
因爲文件對象本身就是可迭代的




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章