開發者學堂課程【Python 語言基礎 3:函數、面向對象、異常處理:檔案寫入】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/601/detail/8771檔案寫入
内容介紹:
一、write( )
二、a 表示追加内容
三、x 用來建立檔案
四、+ 為操作符增加功能
輸入:
file_name =' demo .txt '
with open(file_name , encoding= ' utf-8 ') as file_obj:
write()
來向檔案中寫入内容
如果操作的是一個文本檔案的話,則 write( ) 需要傳遞一個字元串作為參數
file_obj.write( ' Hello Hello How are you! ' )
先試着執行:報錯,不可讀
注意:
使用 open( ) 打開檔案時必須要指定打開檔案所要做的操作(讀、寫、追加)
如果不指定操作類型,則預設是讀取檔案,而讀取檔案時是不能向檔案中寫入的
r 表示隻讀的
w 表示是可寫的
修改
with open(file_name , ' w ', encoding= ' utf-8 ') as file_obj:
結果如下:
Hello Hello How are you!
使用 w 來寫入檔案時,如果檔案不存在會建立檔案,如果檔案存在則會截斷檔案,截斷檔案指删除原來檔案中的所有内容,比如,先将
with open(file_name , ' w ',
encoding= ' utf-8 ') as file_obj
中的 w 改為 r ,将
file_name ='
demo .txt '
中的 demo 改為 demo3 (不存在的檔案)
會報錯,檔案不存在
而如果換成 w ,檔案同樣不存在,但是執行沒有報錯:
***Repl Closed***
同時建立了一個檔案
建立完之後,就寫進内容:
Hello Hello How are you!
write( ) 可以分多次向檔案中寫入内容:
file_obj.write( ' aaa ' )
file_obj.write( ' bbb ' )
file_obj.write( ' ccc ' )
aaabbbccc
如果輸入
file_obj.write(123)
會報錯:隻能寫入字元串
如果要傳遞非字元串的值時,需要調用 str 做一個類型轉換:
file_obj.write(str(123))
Aaabbbccc123
并且 write( ) 寫入不會自動換行,需要加入 \n
file_obj.write( ' aaa\n ' )
file_obj.write( ' bbb\n ' )
file_obj.write( ' ccc\n ' )
file_obj.write(str(123) +' \n' )
write( ) 實際上有傳回值,寫入完成以後,該方法會傳回寫入的字元的個數
r = file_obj.write(str(123) +' \n' )
print(r)
結果是 4
再來輸入:
r = file_obj.write(str(123) +'123123 \n' ),
結果是 10
輸入:
r = file_obj.write('今天天氣真不錯' ),
結果是 7
如果檔案不存在會建立檔案,如果檔案存在則會向檔案中追加内容
将 w 改為 a ,
with open(file_name , ' a ', encoding= ' utf-8 ') as file_obj:
如果檔案不存在則建立,存在則報錯
r+ 既可讀又可寫,檔案不存在會報錯
w+ 在寫的基礎上增加讀的功能
a+ 在追加内容上變成可讀的