file object = open(file_name [, access_mode][, buffering])
file_name:file_name變量是一個包含了你要訪問的文件名稱的字符串值。
access_mode:access_mode決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。
buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問文件時會寄存行。如果將buffering的值設為大於1的整數,表明了這就是的寄存區的緩沖大小。如果取負值,寄存區的緩沖大小則為系統默認。
with open('filepath','r') as f:
for line in f:
print(line)
print('一行數據')
雖然f是一個文件實例,但可以通過以上方式對每一行進行循環處理了,處理時每一行是一個字符串str,而且這個是速度最快最簡潔的方法。
fileObject.read([count])
被傳遞的參數是要從已打開文件中讀取的字節計數。該方法從文件的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內容,很可能是直到文件的末尾。
with open('filepath','r') as f:
ff=f.read()
這個函數把文件全部內容一次性讀到一個字符串中。就是一坨的那種,如果把ff用循環讀取的方式輸出,會是一個一個字符,因為ff是字符串,本質上是tuple。
with open('filepath','r') as f:
lines=f.readlines()
for line in lines:
print(line)
with open('filepath','r') as f:
line =f.readline()
while line:
print(line)
line=f.readline()
這種方式是一行一行的讀,非常的省內存,當文件巨大的情況下是有好處的。
write()方法可將任何字符串寫入一個打開的文件。需要重點注意的是,Python字符串可以是二進制數據,而不是僅僅是文字。
fileObject.write(string)
# 打開一個文件
fo = open("foo.txt", "w")
fo.write( "\nVery good site!\n")
# 關閉打開的文件
fo.close()
File 對象的 close()方法刷新緩沖區裡任何還沒寫入的信息,並關閉該文件,這之後便不能再進行寫入。
fileObject.close()
# 打開一個文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
# 關閉打開的文件
fo.close()
tell()方法告訴你文件內的當前位置, 換句話說,下一次的讀寫會發生在文件開頭這麼多字節之後。
seek(offset [,from])方法改變當前文件的位置。Offset變量表示要移動的字節數。From變量指定開始移動字節的參考位置。
如果from被設為0,這意味著將文件的開頭作為移動字節的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那麼該文件的末尾將作為參考位置。
# 打開一個文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "讀取的字符串是 : ", str
# 查找當前位置
position = fo.tell()
print "當前文件位置 : ", position
# 把指針再次重新定位到文件開頭
position = fo.seek(0, 0)
str = fo.read(10)
print "重新讀取字符串 : ", str
# 關閉打開的文件
fo.close()
如有疑問,敬請留言。