Python的open的寫入方式有:
write(str):將str寫入文件
writelines(sequence of strings):寫多行到文件,參數為可迭代對象
首先來看下writelines()這個方法:
1 f = open('blogCblog.txt', 'w') #首先先創建一個文件對象,打開方式為w 2 f.writelines('123456') #用readlines()方法寫入文件
運行上面結果之后,可以看到blogCblog.txt文件有123456內容,這里需要注意的是,mode為‘w’模式(寫模式),再來看下面代碼:
1 f = open('blogCblog.txt', 'w') #首先先創建一個文件對象,打開方式為w 2 f.writelines(123456) #用readlines()方法寫入文件
運行上面代碼之后會報一個TypeError,這是因為writelines傳入的參數並不是一個可迭代的對象。
接着來看write方法:
可以看到在cmd運行上面代碼,明明用write寫入blogCblog這個字符串,但在blogCblog.txt這個文件里面沒有blogCblog這個字符串喔,也就是沒有寫入成功,為什么?接着來看下這段代碼:
這段代碼寫入了10000行blogCblog字符串,打開blogCblog.txt文件發現,有內容,但只有9000多行,不是10000嗎,怎么寫入一個blogCblog就不成功呢?其實,Python寫入過程中是把字符串寫入一個叫緩沖區中,當你寫入的字節大於或等於緩沖區的大小,就會自動寫入到文件中,而當你寫入的字節小於緩沖區的大小,就會一直存在緩沖區中。
解決這種問題的方法就是調用close()方法,先清空blogCblog.txt這個文件里的內容,再運行下面代碼:
你會發現blogCblog.txt文件里有blogCblog這個字符串了,這是close()的功勞
同樣的,當你寫入一個大於或等於緩沖區大小的數據時,雖然沒有調用close()也會寫入一部分數據,這是因為緩沖區裝不下那么大的數據,會自動的寫入到你的文件中,剩下的數據因為小於緩沖區的大小,所以會存在緩沖區中,這就是當你寫入大於或等於緩沖區大小的數據時,只寫入一部分的原因,這時,只需調用close()方法,就會把緩沖區的剩下數據寫入到文件中。
所以,當你操作完文件后,千萬別忘了關閉!!!
另外:如果你沒有關閉,就刪除不掉這個文件,因為你進程占用了!還有當你打開這個文件很很多次並不關閉的話就會打開失敗!