序列化與反序列化 json picklepython
1.什麼是序列化與反序列化?shell
序列化就是將內存中的數據結構轉成一種中間格式儲存到硬盤或者基於網絡傳輸json
反序列化是網絡,硬盤將被序列化的對象從新讀到內存bash
2.爲何要序列化?網絡
①保存程序的運行狀態數據結構
②數據的跨平臺交互dom
3.怎麼用?spa
json 存的是str類型操作系統
優勢:具備跨平臺型orm
缺點:只能對應python部分的數據類型
pickle 存的是bytes類型
優勢:能夠對應全部的數據類型
缺點:不具有跨平臺性
二者都具備dump dumps load loads
時間模塊 time datetime
時間模塊有三種格式:
1、時間戳:從1970年1月1日00:00:00開始按秒計算的偏移量time.time()
2、結構化的時間(時間對象):time.localtime() time.gmtime()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=20, tm_hour=14,tm_min=44, tm_sec=4, tm_wday=2, tm_yday=171, tm_isdst=0)
3、格式化的字符串形式: time.strftime(‘%Y-%m-%d %X’)
2017-02-15 11:40:53
三種格式間的轉換
time模式的缺陷:
1.獲取格式化字符串形式的時間麻煩
2.時間戳與格式化時間之間的轉換麻煩
3.獲取以前或者將來的時間麻煩
datetime對應的解決辦法
1.datetime.datetime.now()
2.datetime.datetime.fromtimestamp(16514651)
3.datetime.datetime.now() +datetime.timedelta(day = 3) 三天後
4.s = time.time.now() print(s.replace(year = 2020)) 替換某個時間
random模塊
import random
print(random.random())#(0,1)----float 大於0且小於1之間的小數
print(random.randint(1,3)) #[1,3] 大於等於1且小於等於3之間的整數
print(random.randrange(1,3)) #[1,3) 大於等於1且小於3之間的整數
print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5]
print(random.sample([1,'23',[4,5]],2))#列表元素任意2個組合
print(random.uniform(1,3))#大於1小於3的小數,如1.927109612082716
item=[1,3,5,7,9]
random.shuffle(item) #打亂item的順序,至關於"洗牌"
print(item)
os模塊
os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑
os.chdir("dirname") 改變當前腳本工做目錄;至關於shell下cd
os.curdir 返回當前目錄: ('.')
os.pardir 獲取當前目錄的父目錄字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄
os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推
os.mkdir('dirname') 生成單級目錄;至關於shell中mkdir dirname
os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname
os.listdir('dirname') 列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印
os.remove() 刪除一個文件
os.rename("oldname","newname") 重命名文件/目錄
os.stat('path/filename') 獲取文件/目錄信息
os.sep 輸出操做系統特定的路徑分隔符,win下爲"\\",Linux下爲"/"
os.linesep 輸出當前平臺使用的行終止符,win下爲"\t\n",Linux下爲"\n"
os.pathsep 輸出用於分割文件路徑的字符串 win下爲;,Linux下爲:
os.name 輸出字符串指示當前使用平臺。win->'nt'; Linux->'posix'
os.system("bash command") 運行shell命令,直接顯示
os.environ 獲取系統環境變量
os.path.abspath(path) 返回path規範化的絕對路徑
os.path.split(path) 將path分割成目錄和文件名二元組返回
os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麼就會返回空值。即os.path.split(path)的第二個元素
os.path.exists(path) 若是path存在,返回True;若是path不存在,返回False
os.path.isabs(path) 若是path是絕對路徑,返回True
os.path.isfile(path) 若是path是一個存在的文件,返回True。不然返回False
os.path.isdir(path) 若是path是一個存在的目錄,則返回True。不然返回False
os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑以前的參數將被忽略
os.path.getatime(path) 返回path所指向的文件或者目錄的最後存取時間
os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間
os.path.getsize(path) 返回path的大小