其實持久存儲不僅僅包含文件,還包括數據庫等,本章先介紹一部分,先熟悉一下。
熟悉python數據#!/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 不會改變字符串,他會創建一個新的字符串出來然后執行類似如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是代表總會執行而不論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 不會改變字符串,他會創建一個新的字符串出來然后執行類似如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()
詳細打印捕獲到的錯誤信息
#!/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 不會改變字符串,他會創建一個新的字符串出來然后執行類似如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)) # 捕獲詳細的錯誤信息,這個信息需要str格式化 finally: data.close()
例如詳細的錯誤信息會顯示: File error: XXXX NO such file or directory:"sketch.txt"
用with代替open因為with 會自動關閉文件,而不用像open那樣要在結尾是用close關閉
with open("its.txt","w") as data: print data學習是用pickle
pickle的使用原因是它是python的專用持久存儲方式,可以不用理會格式問題,直接保存,直接使用,這就是他的閃光之處。
用dump保存,用load恢復
#!/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...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37535.html
摘要:第一章學習流程圖安裝這里是用的,除了之外,和都自帶了,只是版本沒有這么新。是區分大小寫的。可以根據多維數組來理解。知識點補充里列表是打了激素的數組,意味著列表比數組更厲害,更好用。的語句的縮進是必須規范的。 head first python(第一章)--學習流程圖 showImg(http://source1.godblessyuan.com/blog_headfirstpytho...
摘要:原來的順序會丟失。原數據的順序依然保留。方法串聯第一個方法應用到數據中,然后再將處理好的數據應用到第二個方法中。例子函數串聯每個函數會取得數據,對他完成某個操作,然后把轉換后的數據繼續向下傳遞到下一個函數。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_5_20150427.jpg); 1...
摘要:增加邏輯來處理首先通過觀察方法對于不同的數據返回的值是不同的。所以需要加一些標記,標識數據不符合期望的格式時會出現數據無法正常訪問時會出現。 1.介紹基礎文件,輸入,輸出 open() 打開文件,一次傳入一行數據,可以結合for循環和readline()來使用 close() 用來關閉open打開的文件 the_file = open(sketch.txt) the_file....
摘要:第二章學習流程圖函數轉換為模塊函數轉換為模塊后,就可以靈活的使用模塊,方便代碼分類,避免代碼堆積在一個文件上。使用命令打包代碼,生成發布包打包后會生成目錄和文件發布后會多了目錄和文件,這個是發布的生成的包和相關配置文件。 head first python(第二章)--學習流程圖showImg(http://source1.godblessyuan.com/blog_head_firs...
摘要:代碼改為根據數據結構,第一個數據是名字,第二個是生日,第二個之后是成績,所以分別將相關數據賦值到字典里面。是否知道何時使用列表而何時使用字典,這正式從好的程序員中區分出優秀程序員的一個標準。特定函數應用特定數據。更加正規的做法是建立類。 showImg(http://source1.godblessyuan.com/blog_head_first_python_chapter_6_20...
閱讀 2082·2021-11-02 14:48
閱讀 2760·2019-08-30 14:19
閱讀 2929·2019-08-30 13:19
閱讀 1297·2019-08-29 16:17
閱讀 3230·2019-08-26 14:05
閱讀 2987·2019-08-26 13:58
閱讀 3075·2019-08-23 18:10
閱讀 1105·2019-08-23 18:04