文本文件和二進制文件的區別
用文本編輯器生成一個包含“中國是一個偉大的的國家!"的txt格式文本文件,命名為7.1txt。
分別用文本文件方式和二進制文件方式讀入,並顯示輸出效果
代碼:
1 txtFile=open("7.1.txt","rt")#t表示文本文件方式 2 print(txtFile.readline()) 3 txtFile.close() 4 binFile=open("7.1.txt","rb")#b表示二進制文件方式 5 print(binFile.readline()) 6 binFile.close()
顯示結果
中國是個偉大的國家 b'\xd6\xd0\xb9\xfa\xca\xc7\xb8\xf6\xce\xb0\xb4\xf3\xb5\xc4\xb9\xfa\xbc\xd2\r\n'
文件的打開和關閉
<變量名>=open(<文件名>,<打開模式>)
open函數提供的7種基本打開模式
| 文件的打開模式 | 含義 |
| 'r' | 只讀模式,如果文件不存在,返回異常FileNotFoundError,默認值 |
| 'w' | 覆蓋寫模式,文件不存在則創建,存在則完全覆蓋 |
| 'x' | 創建寫模式,文件不存在則創建,存在則返回異常FileExistsError |
| 'a' | 追加寫模式,文件不存在則創建,存在則在文件后追加內容 |
| 'b' | 二進制文件模式 |
| 't' | 文本文件模式,默認值 |
| '+' | 與r/w/x/a一起使用,在原功能基礎上增加同時讀寫功能 |
文件使用結束后要用close()方法關閉,釋放文件的使用授權
<變量名>.close()
文件的讀寫
當文件被打開后,根據打開方式不同可以對文件進行相應的讀寫操作當文件以文本文件的形式打開時,讀寫按照字符串方式,采用當前計算機使用的編碼或指定的編碼;當文件以二進制文件方式打開是,讀寫按照字節流方式。
文件讀取方法
| 操作方法 | 含義 |
| <file>.read(size=-1) | 從文件中讀入整個文件的內容,如果給出參數,讀入前size長度的字符串或字節流。 |
| <file>.readline(size=-1) | 從文件中讀入一行內容,如果給出參數,讀入前size長度的字符串或字節流。 |
| <file>.readline(hint=-1) | 從文件中讀入所有行,以每行為元素形成一個列表,如果給出參數,讀入前hint行 |
文本文件逐行打印
fname=input("請輸入要打開的文件名") fo=open(fname,"r") for line in fo.readlines(): print(line) fo.close()
如果程序需要逐行處理文件內容,建議采用
fname=input("請輸入要打開的文件名") fo=open(fname,"r") for line in fo: print(line)#處理一行數據 fo.close()
文件內容寫入方法
| 方法 | 含義 |
| <file>.write(s) | 向文件寫入一個字符串或字節流 |
| <file>.writelines(lines) | 將一個元素全為字符串的列表寫入文件 |
| <file>.seek(offset) | 改變當前文件操作指針的位置,offset的值:0——文件開頭,1——當前位置,2——文件結尾 |
向文件寫入一個列表
fname=input("請輸入要寫的文件") fo=open(fname,"w+") ls=["唐詩","宋詞","元曲"] fo.writelines(ls) fo.seek(0) for line in fo: print(line) fo.close()
顯示結果
請輸入要寫的文件test.txt
唐詩宋詞元曲
