1. 程式人生 > >day 8

day 8

文本文件 簡單的 讀取 寫入 post 追加內容 應用 avi clas

一、文件操作

1)介紹:

計算機系統分為:計算機硬件,操作系統,應用程序三部分。

我們用python或其他語言編寫的應用程序若想要把數據永久保存下來,必須要保存於硬盤中,這就涉及到應用程序要操作硬件,眾所周知,應用程序是無法直接操作硬件的,這就用到了操作系統。操作系統把復雜的硬件操作封裝成簡單的接口給用戶/應用程序使用,其中文件就是操作系統提供給應用程序來操作硬盤虛擬概念,用戶或應用程序通過操作文件,可以將自己的數據永久保存下來。

有了文件的概念,我們無需再去考慮操作硬盤的細節,只需要關註操作文件的流程:

#1. 打開文件,得到文件句柄並賦值給一個變量
#2. 通過句柄對文件進行操作
#3. 關閉文件

2)只讀 和 讀寫:

技術分享圖片
‘r‘    只讀模式【默認模式,文件必須存在,不存在則拋出異常】

f=open(‘a.txt‘,‘r‘,encoding=‘utf-8‘)
data=f.read()
f.close()


‘r+‘ 讀寫【可讀,可寫】

f = open(‘a.txt‘,‘r+‘,encoding=‘utf-8‘)
data=f.read()
f.close()
技術分享圖片

3)只寫 和 寫讀:

技術分享圖片
’w‘     只寫模式【不可讀;不存在則創建;存在則清空內容

f = open(‘log‘,‘w‘,encoding=‘utf-8‘)
f.write(‘帶帶大師兄‘)
f.close()


‘w+‘    寫讀【可讀,可寫】

f = open(‘log‘,‘w+‘,encoding=‘utf-8‘)
f.write(‘帶帶大師兄‘)
print(f.read())
f.close()
技術分享圖片

4)追加 和 追加寫

技術分享圖片
‘a‘    之追加寫模式【不可讀;不存在則創建;存在則只追加內容】

f = open(‘log‘,‘a‘,encoding=‘utf-8‘)
f.write(‘帶帶大師兄‘)
f.close()


‘a+‘    寫讀【可讀,可寫】

f = open(‘log‘,mode=‘a+‘,encoding=‘utf-8‘)
f.write(‘帶帶大師兄‘)
print(f.read())
f.close()
技術分享圖片

5)只寫 和 寫讀

‘x‘    只寫模式【不可讀;不存在則創建,存在則報錯】


‘x+‘    寫讀【可讀,可寫】

6)rb、wb、ab、xb的用法:

1.對於非文本文件,我們只能使用b模式,"b"表示以字節的方式操作(而所有文件也都是以字節的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式)

2.以b方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼

7)操作文件的方法:

技術分享圖片
f.read() #讀取所有內容,光標移動到文件末尾
f.readline() #讀取一行內容,光標移動到第二行首部
f.readlines() #讀取每一行內容,存放於列表中

f.write(‘1111\n222\n‘) #針對文本模式的寫,需要自己寫換行符
f.write(‘1111\n222\n‘.encode(‘utf-8‘)) #針對b模式的寫,需要自己寫換行符
f.writelines([‘333\n‘,‘444\n‘]) #文件模式
f.writelines([bytes(‘333\n‘,encoding=‘utf-8‘),‘444\n‘.encode(‘utf-8‘)]) #b模式

#seek 光標移動到第幾個字節的位置
f.seek(0,0)    移動到最開始
f.seek(0,2)    移動到最末尾

#tell    告訴你光標的位置
f.tell()

#readable    #文件是否可讀
f.readable()
技術分享圖片

8)truncate的用法:

truncate是截斷文件,所以文件的打開方式必須可寫,但是不能用w或w+等方式打開,因為那樣直接清空文件了,所以truncate要在r+或a或a+等模式下測試效果

9)強大裝逼打開和關閉文件結合代碼:

with open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) as f:

day 8