內建模組:os.path.hashlib模組
阿新 • • 發佈:2020-12-24
常用模組
-
time,datetime
-
封裝了獲取時間戳和字串形式的一些方法
import time # 如何獲取一個時間戳 時間元年到現在經過的毫秒數 1970.1.1 00:00:00 ==元年 print(time.time()) # 格式化時間物件 print(time.gmtime()) print(time.localtime()) # 格式化時間物件和字串之前的轉換# 預設引數是當前時間戳 s = time.strftime("%Y-%m-%d %H:%M:%S") print(s) # 時間字串轉化為時間物件 time_obj = time.strptime("2010 10 10","%Y %m %d") print(time_obj) # 時間物件轉化為時間戳 print(time.mktime(time.localtime()))
-
-
os,sys
-
import os # 和檔案操作相關 重新命名 刪除 # os.remove(r'a.txt') # os.rename('a.txt', 'aa/b.txt') # 刪除目錄 # os.removedirs('aa') # 使用shutil模組 可以刪除帶內容的目錄 # import shutil # shutil.rmtree('aa') # 和路徑相關的操作,被封裝到了另一個模組 os.path # ret = os.path.dirname(r'/aa/bb/cc/a.txt') # print(ret) # ret1 = os.path.basename(r'/aa/bb/cc/a.txt') # print(ret1)# 把路徑和檔案切分開, 元組形式 # res = os.path.split(r'/aa/bb/cc/a.txt') # print(res) # 拼接路徑 # res = os.path.join(r'a:\bbb','cc','a.txt') # print(res) # 如果是/ 開頭的路徑,預設是在當前碟符下 # res = os.path.abspath(r'/a/b/c') # # 如不是/開頭 是當前專案路徑 # res = os.path.abspath(r'a/b/c') # print(res) # 判斷 當前是不是絕對路徑 res = os.path.isabs(r'/aa/bb/cc/a.txt') res = os.path.isabs(r'a.txt') print(res) print(os.path.isfile(r'aa/b.txt')) print(os.path.isfile(r'aa/bb')) print(os.path.exists(r'aa/bb'))
import sys ## print(sys.argv[0])# 指令碼名 # print(sys.argv[1]) # 指令碼後面的第一個引數 # arg1 = int(sys.argv[1]) # arg2 = int(sys.argv[2]) # print(arg1 + arg2) # 直譯器去尋找模組的路徑 sys.pathprint(sys.modules)
-
-
hashlib, json ,pickle ,collections
-
json模組(javaScript Object Notation)java指令碼兌現標記語言
-
'''序列化:將記憶體中的資料轉化成位元組串 , 用以儲存在檔案或者通過網路傳輸 稱為序列化過程 從檔案中或者網路中,轉化成記憶體中原來的資料型別,稱為反序列化過程 ''' # json :將資料轉化成字串 用於儲存或網路傳輸 import json # print(json.dumps([1,0,1,0]))) # 序列化 指定的物件轉化成json格式的字串 列表,int,字典 # print(json.dumps((1,0,1))) # 元組序列化後 變成列表# print(json.dumps((1010)),type(json.dumps((1010))))# print(json.dumps({'name':'我'}),type(json.dumps({'name':'我'})))# print(json.dumps({'name':'我'}),type(json.dumps({'name':'我'})))# print(json.dumps(set('abc')),type(json.dumps(set('abc')))) # TypeError: Object of type 'set' is not JSON serializable## # 將json結果寫到檔案中 # with open('a.txt',mode='wt',encoding='utf-8') as f: # json.dump([1,2,3],f)res = json.dumps([1,2,3]) print(json.loads(res)) # 反序列化# 元組反序列化變成列表 res = json.dumps((1,2,3)) print(json.loads(res)) # 反序列化# 從檔案傳序列化 with open('a.txt',encoding='utf-8') as f: ret = json.load(f) print(ret,type(ret)) # 總結: # json.dums(obj) # 寫到記憶體 # json.dums(obj,f) # 寫到檔案 # json.loads(s) # 將原本的資料型別返回來 # json.load(f) # 將檔案的字串 以資料型別的返回來 # 多次寫多次讀 with open('json.txt',mode='at',encoding='utf-8') as f: f.write(json.dumps([1,2,3]) + '\n') f.write(json.dumps([4,5,6]) + '\n') # 把分次序列化的json字串,反序列化回來 with open('json.txt',mode='rt',encoding='utf-8') as f: res = json.loads(f.readline().strip()) print(res) res1 = json.loads(f.readline().strip()) print(res1)
-
hashlib 模組 *****************************************************
封裝一些用於加密的類
md5() 用於判斷和驗證,並非解密
特點:
- 把一個大的資料切分成不同的小塊,分別對不同的塊進行加密,在彙總結果,和直接對整體資料加密的結果是一致的
- 單項加密,不可逆
- 原始資料的一點小的變化,將導致結果非常大的差異
# 獲取加密物件***** m = hashlib.md5() # 使用加密物件的update方法進行加密***** # m.update(b'adc') m.update('adc中文'.encode('utf-8')) # 通過hexdigest 獲取加密結果***** res = m.hexdigest() print(res) # 位元組加密結果 res = m.digest() print(res) # 給一個數據加密 # 驗證:用另一個數據加密結果 和第一次加密結果對比, # 一致:原文相同 不一致:原文不一致 # 不同加密演算法,實際就是加密結果的長度不同 m1 = hashlib.sha224() m1.update('adc中文'.encode('utf-8')) print(m1.hexdigest())
-