1. 程式人生 > 實用技巧 >序列化與反序列化話、os模組

序列化與反序列化話、os模組

一、序列化與反序列化

import json
dic={'k1':'v1','k2':'v2','k3':'v3'}
print(type(dic))

# 序列化:記憶體中的資料結構----》轉成一種中間格式(字串)----》存到檔案中
#dumps
str_dic = json.dumps(dic) #將字典轉換成字串,轉換後的字典中的元素是由雙引號表示的
print(str_dic,type(str_dic))
#{"k1": "v1", "k2": "v2", "k3": "v3"} <class 'str'>


#反序列化:檔案----》讀取中間格式(字串)------》eval轉成記憶體中資料結構
#loads dic2 = json.loads(str_dic)#將一個字串轉換成字典型別 print(dic2,type(dic2)) #{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'} <class 'dict'> #也可以處理巢狀的資料型別 list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}] str_dic = json.dumps(list_dic) print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}]
list_dic2 = json.loads(str_dic) print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}]

二、os模組

 1 os.getcwd() 獲取當前工作目錄,即當前python指令碼工作的目錄路徑
 2 os.chdir("dirname")  改變當前指令碼工作目錄;相當於shell下cd
 3 os.curdir  返回當前目錄: ('.')
 4 os.pardir  獲取當前目錄的父目錄字串名:('..'
) 5 os.makedirs('dirname1/dirname2') 可生成多層遞迴目錄 6 os.removedirs('dirname1') 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推 7 os.mkdir('dirname') 生成單級目錄;相當於shell中mkdir dirname 8 os.rmdir('dirname') 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname 9 os.listdir('dirname') 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印 10 os.remove() 刪除一個檔案 11 os.rename("oldname","newname") 重新命名檔案/目錄 12 os.stat('path/filename') 獲取檔案/目錄資訊 13 os.sep 輸出作業系統特定的路徑分隔符,win下為"\\",Linux下為"/" 14 os.linesep 輸出當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" 15 os.pathsep 輸出用於分割檔案路徑的字串 win下為;,Linux下為: 16 os.name 輸出字串指示當前使用平臺。win->'nt'; Linux->'posix' 17 os.system("bash command") 執行shell命令,直接顯示 18 os.popen("bash command) 執行shell命令,獲取執行結果 19 os.environ 獲取系統環境變數 22 os.path 23 os.path.abspath(path) 返回path規範化的絕對路徑 24 os.path.split(path) 將path分割成目錄和檔名二元組返回 25 os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素 26 os.path.basename(path) 返回path最後的檔名。如何path以/或\結尾,那麼就會返回空值。 即os.path.split(path)的第二個元素 27 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False 28 os.path.isabs(path) 如果path是絕對路徑,返回True 29 os.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回False 30 os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False 31 os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略 32 os.path.getatime(path) 返回path所指向的檔案或者目錄的最後訪問時間 33 os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間 34 os.path.getsize(path) 返回path的大小