2018-09-03day11-文件操作和異常捕獲

一丙笋、文件操作

打開文件 -- 操作 -- 關閉文件

1.基本過程

2.open(路徑,打開方式,encoding=編碼方式)

a.路徑:絕對路徑(了解)摇天,相對路徑:./相對路徑图贸,../都毒,.../
b.打開方式:r评凝,br/rb -- 讀坯钦,w蟀苛,rw/wr -- 寫
注意:路徑不存在的時候益咬,讀的方式打開會報錯,寫的方式打開會打開新建文件
c.設置編碼:utf-8帜平,gbk
注意:如果是以二進制的形式打開文件(br/rb幽告,rw/wr),不能設置編碼方式

3.文件的讀和寫

read()/readline() -- 讀
write() -- 寫

4.關閉文件

f.close() --- 關閉文件

5.打開文件和關閉文件的的簡寫方式(常用的)

# 讀二進制文件(上傳文件)
with open('./files/timg.jpg','rb') as f:
    # bytes是python中內(nèi)置的數(shù)據(jù)類型裆甩,用來表示二進制
    content = f.read()
    print(type(content))
    print(content)
f.close()
# 將二進制數(shù)據(jù)寫入文件(下載圖片)
with open('./files/new.jpg','wb') as f:
    f.write(content)
f.close()

二饱普、json文件

json是沒有特定格式的一種文本形式,它有自己的語法
json文件就是后綴是.json的文本文件

1.json格式對應的數(shù)據(jù)類型及其表現(xiàn)

a.每個json文件中只能存一個數(shù)據(jù)拧烦,這個數(shù)據(jù)的類型必須是以下類型中的一個

類型:                         格式:                     意義
對象(object):                  {"a":10,"b":[1,2]}         相當于字典
數(shù)組(array):                   [100,"abc",true,[1,2]]     相當于列表治唤,里面的元素可以是任何類型
數(shù)字(number):                  0,100,3.14,-200            包含整數(shù)和小數(shù)                       
字符串(string):                "abc","hello jason"        相當于字符串
布爾                            true/false                是(真)/否(假)
null:                           null                      空值

2.python對json數(shù)據(jù)的支持

json       --->      python
對象                 字典(dict)
數(shù)組                 列表(list)
數(shù)字                 整數(shù)(int)和浮點數(shù)(float)
布爾/true,false      布爾(bool)/True,False
null                  None

json模塊是python中內(nèi)置的,專門用來處理json數(shù)據(jù)的一個模塊

  • load(json文件對象):以json的格式茉帅,獲取文件中的內(nèi)容叨叙。將內(nèi)容轉換成對應的python數(shù)據(jù)
  • loads(json格式內(nèi)容的字符串,編碼方式):將json格式的字符串轉換成python對應的數(shù)據(jù)
  • dump(需要寫入json文件中的python數(shù)據(jù)堪澎,json文件對象)
  • dumps(需要轉換成json格式字符串的python)
with open('./files/json1.json', 'r', encoding='utf-8') as f:
    content = json.load(f)
    print(content)
    print(type(content))
    print(content[3])

content1 = json.loads('{"a":100, "abc":true}', encoding='utf-8')
print(content1,type(content1))

3.python轉json數(shù)據(jù)

with open('./files/new.json', 'w', encoding='utf-8') as f:
     json.dump({'a':100, 'hn':200},f)
    # json.dump((1,'a',True,3.14), f)
    # 注意:集合不能轉換成python數(shù)據(jù)
    #json.dump({1,2,'a',True}, f)

# 將python數(shù)據(jù)擂错,轉換成json字符串
json_str = json.dumps([1,2,3,True,'abc'])
print(json_str,type(json_str))

三、異常捕獲

a.形式1:捕獲try后代碼塊里面的所有異常

try:
    需要捕獲異常的代碼塊(可能會出現(xiàn)異常的代碼塊)
except:
    出現(xiàn)異常后執(zhí)行的代碼

執(zhí)行過程:執(zhí)行try后面的代碼塊樱蛤,一旦遇到異常钮呀,就馬上執(zhí)行except后面的代碼塊。執(zhí)行完后再執(zhí)行其他的語句如果try里面的代碼塊沒有出現(xiàn)異常昨凡,就不執(zhí)行except后面的代碼塊爽醋。再執(zhí)行其他的語句

b.形式2:

try:
    需要捕獲異常的代碼塊(可能會出現(xiàn)異常的代碼塊)
except (錯誤類型1,錯誤類型2):
    出現(xiàn)異常后執(zhí)行的代碼

c.形式3:

try:
    需要捕獲異常的代碼塊(可能會出現(xiàn)異常的代碼塊)
except (錯誤類型1):
    出現(xiàn)異常后執(zhí)行的代碼
except (錯誤類型2):
    出現(xiàn)異常后執(zhí)行的代碼

d.形式4:

try:
    pass
except:     
    出現(xiàn)異常后執(zhí)行代碼
finally:
    不管有沒有異常都會執(zhí)行(就算崩潰了也會執(zhí)行)
    (在這兒做程序異常退出時的善后,一般做保存數(shù)據(jù)和進度的工作)
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末土匀,一起剝皮案震驚了整個濱河市子房,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖证杭,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件田度,死亡現(xiàn)場離奇詭異,居然都是意外死亡解愤,警方通過查閱死者的電腦和手機镇饺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來送讲,“玉大人奸笤,你說我怎么就攤上這事『喵蓿” “怎么了监右?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長异希。 經(jīng)常有香客問我健盒,道長,這世上最難降的妖魔是什么称簿? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任扣癣,我火速辦了婚禮,結果婚禮上憨降,老公的妹妹穿的比我還像新娘父虑。我一直安慰自己,他們只是感情好授药,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布士嚎。 她就那樣靜靜地躺著,像睡著了一般烁焙。 火紅的嫁衣襯著肌膚如雪航邢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天骄蝇,我揣著相機與錄音,去河邊找鬼操骡。 笑死九火,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的册招。 我是一名探鬼主播岔激,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼是掰!你這毒婦竟也來了虑鼎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炫彩,沒想到半個月后匾七,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡江兢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年昨忆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杉允。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡邑贴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叔磷,到底是詐尸還是另有隱情拢驾,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布改基,位于F島的核電站独旷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏寥裂。R本人自食惡果不足惜嵌洼,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望封恰。 院中可真熱鬧麻养,春花似錦、人聲如沸诺舔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽低飒。三九已至许昨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間褥赊,已是汗流浹背糕档。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拌喉,地道東北人速那。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像尿背,于是被迫代替她去往敵國和親端仰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 關于Mongodb的全面總結 MongoDB的內(nèi)部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,931評論 2 89
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理田藐,服務發(fā)現(xiàn)荔烧,斷路器吱七,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • 1.文件操作 1.基本過程:打開文件--操作--關閉文件2.open(路徑,打開方式鹤竭,encoding = "編碼...
    湯姆貓是只瘋貓閱讀 194評論 0 1
  • 昨夜不知何故踊餐,女兒哼哼唧唧了好幾次,睡的很不踏實诺擅,搞得我也沒睡好市袖。四點多女兒又開始哼唧,把尿喝奶后烁涌,終于又睡著了苍碟,...
    輕寒翦翦閱讀 240評論 0 0
  • banana課堂(居然有小粉絲了,我可不可以傲嬌一下~謝謝朱妹的鼓勵哈哈撮执,我會不定時更新的~ ):不過今天是個悲傷...
    banana課堂閱讀 288評論 0 0