1.文件管理
os庫(kù)提供了很多和文件管理操作
數(shù)據(jù)本地化和數(shù)據(jù)持久化 -通過(guò)文件將數(shù)據(jù)存到硬盤(pán)中
txt.json.plist.xml.png.mp4.mp3
-
文件操作-打開(kāi)文件>>>操作文件(讀/寫(xiě))>>>關(guān)閉文件
打開(kāi)文件
‘’‘
open(file,mode,encoding=None)
'''
1) file: 字符串,需要打開(kāi)的文件的路徑
./當(dāng)前文件所在目錄
../上層目錄
2) mode: -字符串,打開(kāi)方式
r -默認(rèn)值,以讀的方式打開(kāi)文件只能進(jìn)行讀操作
w -以寫(xiě)的方式打開(kāi)文件只能進(jìn)行讀操作,覆蓋
a -以寫(xiě)的方式打開(kāi)文件只能進(jìn)行讀操作,追加
rb/br -以讀的方式打開(kāi)文件只能進(jìn)行讀操作,讀出來(lái)的內(nèi)容是二進(jìn)制
wb/bw -以寫(xiě)的方式打開(kāi)文件只能進(jìn)行讀操作,將二進(jìn)制寫(xiě)進(jìn)文件中
3)encoding: 文本編碼方式
utf-8
gbk
注意:文本編碼只針對(duì)文本文件、二進(jìn)制文件不能設(shè)置編碼方式
文件操作:
’‘’
- 文件對(duì)象.read() -獲取文件中所有的內(nèi)容,并返回
- 文件對(duì)象.write() -將指定內(nèi)容寫(xiě)到文件中,返回寫(xiě)入內(nèi)容的長(zhǎng)度
- 文件.close() -關(guān)閉文件
二進(jìn)制文件操作
rb -讀的時(shí)候獲取到的內(nèi)容是二進(jìn)制數(shù)據(jù)
wb -寫(xiě)入的內(nèi)容要求類型是二進(jìn)制文件
普通的文本文件可以通過(guò)二進(jìn)制的形式去打開(kāi),影響只是獲取到的內(nèi)容,和寫(xiě)進(jìn)去的內(nèi)容的數(shù)據(jù)類型
二進(jìn)制文件只能以二進(jìn)制的形式打開(kāi)(例如:圖片、視頻等)
二進(jìn)制數(shù)據(jù)
一般的二進(jìn)制數(shù)據(jù)是通過(guò)網(wǎng)絡(luò)請(qǐng)求獲取到,或者通過(guò)本地的二進(jìn)制文件來(lái)取到
1)將字符串轉(zhuǎn)換成二進(jìn)制
bytes(字符串,編碼方式)
字符串.encode(編碼方式)
2)將二進(jìn)制轉(zhuǎn)換成字符串
str(二進(jìn)制數(shù)據(jù),編碼方式)
二進(jìn)制數(shù)據(jù).decode
-
文件上下文
- with open(文件路徑,打開(kāi)方式,編碼方式) as 文件對(duì)象名
-
json
1)滿足json格式的數(shù)據(jù)就叫json數(shù)據(jù)
2)json格式:
一個(gè)json有且只有一個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)必須滿足json 支持的的數(shù)據(jù)類型。
3)json支持的數(shù)據(jù)類型:- 數(shù)字(number):包含所有的數(shù)字,整數(shù)和小數(shù)。支持科學(xué)計(jì)數(shù)法。
- 字符串:用雙引號(hào)括起來(lái)的字符集。字符也可以是轉(zhuǎn)義字符和編碼字符
- 布爾(boolean)true/false
- 數(shù)組:相當(dāng)于python中的列表
- 字典:相當(dāng)于python里面的字典
- 空值
4)使用json:
- 解析json數(shù)據(jù)(獲取到j(luò)son數(shù)據(jù)后將Json想要的東西解析出來(lái))
- 構(gòu)造json數(shù)據(jù):
在python有一個(gè)內(nèi)置的庫(kù),專門(mén)負(fù)責(zé)json數(shù)據(jù)的處理
1)將json數(shù)據(jù)轉(zhuǎn)換成python數(shù)據(jù)
json數(shù)據(jù) python數(shù)據(jù)
number int/float
string str
boolean bool
array list
dictionary dict
空 None
2)loads方法:json.loads(str,encoding=‘utf-8’) -解析json數(shù)據(jù),返回json對(duì)應(yīng)的python數(shù)據(jù)
字符串要去掉引號(hào)后本身就是以一個(gè)json數(shù)據(jù)。()
3)python轉(zhuǎn)json
python數(shù)據(jù) json數(shù)據(jù)
int/float number
bool boolean
str string
list/tuple array
dict dictionary
空值(None) Null
4)json.dumps(python數(shù)據(jù)) 將python數(shù)據(jù)轉(zhuǎn)換成內(nèi)容是對(duì)應(yīng)的json數(shù)據(jù)的字符串,結(jié)果是一個(gè)字符串
5)json文件操作:
json.load(文件對(duì)象) 將文件對(duì)象中文件的內(nèi)容轉(zhuǎn)換成python數(shù)據(jù)
json.dump(python數(shù)據(jù),文件對(duì)象) 將python數(shù)據(jù)轉(zhuǎn)換成json字符串再寫(xiě)入指定的文件中