文件IO 讀寫
fnew=open('/murex/new.txt','w')
fnew.write('hello \n i am new')
fnew.read()
fnew.close()
由於read()方法會讀取整個文件內容,涵蓋整個文件中所有數據,數據量太過龐大,非常難以對文件內容進行分析,open()函數返回一個可迭代對象,可以用for遍歷文件對象方法
讀取read()總結
格式:返回對象類型 – 讀取方法
String=FileObject.readline([size])
List = FileObject.readlines([size])
String = FileObject.read([size])
FileObject.next()
write()方法
前面介紹過write()
方法是否會覆蓋文件原內容,決定於打開文件對象的遊標(指針)位置,默認r+模式指針位於文件頭,a模式表示append,指針遊標位於文件尾部。而寫文件最關鍵的指針是可以操作移動的,用seek()
函數
FileObject.seek(偏移量,選項)
選項=0表示將文件指針指向從文件頭部到‘偏移量’字節處
選項=1表示將文件指針指向從文件當前位置,向後移動‘偏移量’字節處
選項=2表示將文件指針指向從文件尾部,向前移動‘偏移量’字節處
FileObject.write(string)
FileObject.writelines(List)
FileObject.seek(偏移量,選項)
FileObject.flush()
示例
case2–文件內容替換,把a.t中的hello替換爲csvt,並保存結果到a2.t中,示例:
示例1:
fp1=file("a.t","r")
fp2=file("a2.t","w")
for s in fp1.readlines():
fp2.write(s.replace("hello","csvt"))
fp1.close()
fp2.close()
示例2:
fp1=file("a.t","r+")
s=f1.read():
f1.seek(0,0)
f1.write(s.replace("hello","csvt"))
fp1.close()