其實持久存儲不僅僅包含文件,還包括數(shù)據(jù)庫等,本章先介紹一部分,先熟悉一下。
熟悉python數(shù)據(jù)#!/usr/bin/python # -*- coding: utf-8 -*- man = [] other = [] try: data = open("sketch.txt") for each_line in data: try: (role,line_spoken) = each_line.split(":",1) line_spoken = line_spoken.strip() #這里的解讀是:這里不是直接處理line_spoken字符串,python 不會改變字符串,他會創(chuàng)建一個新的字符串出來然后執(zhí)行類似如strip()的方法,然后將返回值賦值到原來的字符串 if role == "Man": man.append(line_spoken) elif role == "Other Man": other.append(line_spoken) except ValueError: pass data.close() except IOError: print("The datafile is missing!") print (man) print (other)
print ("Norwegian Blues XXXX",file=out) 是python 3.0用法,如果舊版本的python就是用
data.write(result)
需要注意的是,如果要寫入文件,那么打開文件的時候要用w寫入模式才行,讀取的話是r。
對于try:except無法處理的情況時候,使用finallyfinally是代表總會執(zhí)行而不論try:except的報錯
#!/usr/bin/python # -*- coding: utf-8 -*- man = [] other = [] try: data = open("sketch.txt") for each_line in data: try: (role,line_spoken) = each_line.split(":",1) line_spoken = line_spoken.strip() #這里的解讀是:這里不是直接處理line_spoken字符串,python 不會改變字符串,他會創(chuàng)建一個新的字符串出來然后執(zhí)行類似如strip()的方法,然后將返回值賦值到原來的字符串 if role == "Man": man.append(line_spoken) elif role == "Other Man": other.append(line_spoken) except ValueError: pass data.close() except IOError: print("The datafile is missing!") finally: data.close()
詳細(xì)打印捕獲到的錯誤信息
#!/usr/bin/python # -*- coding: utf-8 -*- man = [] other = [] try: data = open("sketch.txt") for each_line in data: try: (role,line_spoken) = each_line.split(":",1) line_spoken = line_spoken.strip() #這里的解讀是:這里不是直接處理line_spoken字符串,python 不會改變字符串,他會創(chuàng)建一個新的字符串出來然后執(zhí)行類似如strip()的方法,然后將返回值賦值到原來的字符串 if role == "Man": man.append(line_spoken) elif role == "Other Man": other.append(line_spoken) except ValueError: pass data.close() except IOError as err: print("The datafile is missing!" + str(err)) # 捕獲詳細(xì)的錯誤信息,這個信息需要str格式化 finally: data.close()
例如詳細(xì)的錯誤信息會顯示: File error: XXXX NO such file or directory:"sketch.txt"
用with代替open因為with 會自動關(guān)閉文件,而不用像open那樣要在結(jié)尾是用close關(guān)閉
with open("its.txt","w") as data: print data學(xué)習(xí)是用pickle
pickle的使用原因是它是python的專用持久存儲方式,可以不用理會格式問題,直接保存,直接使用,這就是他的閃光之處。
用dump保存,用load恢復(fù)
#!/usr/bin/python # -*- coding: utf-8 -*- import pickle with open("mydata.pickle","w") as mysavedata: pickle.dump([1,2,3],mysavedata) a = [] with open("mydata.pickle","r") as myrestoredata: a = pickle.load(myrestoredata) print a
原文鏈接:http://www.godblessyuan.com/2015/04/27/head_first_python_chapter_5_lea...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37535.html
摘要:第一章學(xué)習(xí)流程圖安裝這里是用的,除了之外,和都自帶了,只是版本沒有這么新。是區(qū)分大小寫的??梢愿鶕?jù)多維數(shù)組來理解。知識點補(bǔ)充里列表是打了激素的數(shù)組,意味著列表比數(shù)組更厲害,更好用。的語句的縮進(jìn)是必須規(guī)范的。 head first python(第一章)--學(xué)習(xí)流程圖 showImg(http://source1.godblessyuan.com/blog_headfirstpytho...
摘要:原來的順序會丟失。原數(shù)據(jù)的順序依然保留。方法串聯(lián)第一個方法應(yīng)用到數(shù)據(jù)中,然后再將處理好的數(shù)據(jù)應(yīng)用到第二個方法中。例子函數(shù)串聯(lián)每個函數(shù)會取得數(shù)據(jù),對他完成某個操作,然后把轉(zhuǎn)換后的數(shù)據(jù)繼續(xù)向下傳遞到下一個函數(shù)。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_5_20150427.jpg); 1...
摘要:增加邏輯來處理首先通過觀察方法對于不同的數(shù)據(jù)返回的值是不同的。所以需要加一些標(biāo)記,標(biāo)識數(shù)據(jù)不符合期望的格式時會出現(xiàn)數(shù)據(jù)無法正常訪問時會出現(xiàn)。 1.介紹基礎(chǔ)文件,輸入,輸出 open() 打開文件,一次傳入一行數(shù)據(jù),可以結(jié)合for循環(huán)和readline()來使用 close() 用來關(guān)閉open打開的文件 the_file = open(sketch.txt) the_file....
摘要:第二章學(xué)習(xí)流程圖函數(shù)轉(zhuǎn)換為模塊函數(shù)轉(zhuǎn)換為模塊后,就可以靈活的使用模塊,方便代碼分類,避免代碼堆積在一個文件上。使用命令打包代碼,生成發(fā)布包打包后會生成目錄和文件發(fā)布后會多了目錄和文件,這個是發(fā)布的生成的包和相關(guān)配置文件。 head first python(第二章)--學(xué)習(xí)流程圖showImg(http://source1.godblessyuan.com/blog_head_firs...
摘要:代碼改為根據(jù)數(shù)據(jù)結(jié)構(gòu),第一個數(shù)據(jù)是名字,第二個是生日,第二個之后是成績,所以分別將相關(guān)數(shù)據(jù)賦值到字典里面。是否知道何時使用列表而何時使用字典,這正式從好的程序員中區(qū)分出優(yōu)秀程序員的一個標(biāo)準(zhǔn)。特定函數(shù)應(yīng)用特定數(shù)據(jù)。更加正規(guī)的做法是建立類。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_6_20...
閱讀 2095·2021-11-02 14:48
閱讀 2771·2019-08-30 14:19
閱讀 2940·2019-08-30 13:19
閱讀 1308·2019-08-29 16:17
閱讀 3245·2019-08-26 14:05
閱讀 2999·2019-08-26 13:58
閱讀 3087·2019-08-23 18:10
閱讀 1114·2019-08-23 18:04