模組
模組定義
模組分為內建模組、自定義模組、第三方模組
自定義模組:將自定義模組的py檔案或者py目錄,放在sys.path的路徑下就可以被載入
注意: py2需要在檔案路徑加__init__.py
匯入模組
import module_name 匯入模組中得所有功能
import os
print(dirname)
from module_name import *|func_name[,func_name...] 匯入某個模組的某乙個功能或多個功能,在執行時不需要在引用模組名稱
from os import path
dirname = path.dirname('/etc/nginx/nginx.conf')
print(dirname)
>/etc/nginx
for example
支援資料夾下的檔案,自動將上層目錄下的py檔案作為模組匯入到到本檔案
import os
import sys
path = os.path.abspath(__file__)
import_path = os.path.dirname(os.path.dirname(path))
json
在不同語言中做資料交換
json與pickle的比較
json:所有語言通用,但是只能序列化基礎資料型別list/dict/int
pickle:python中所有資料型別都能被序列化(除socket物件),但是序列化後的內容只能被python認識
json.dumps #將python的檔案的列表、字典型別轉為json格式------序列化
ensure_acsii=flase 序列化時保留為中文輸出
source = [11,22,33,44,'你好']
print(json.dumps(source),type(json.dumps(source)))
>[11, 22, 33, 44, "\u4f60\u597d"]
print(json.dumps(source,ensure_ascii=false))
>[11, 22, 33, 44 , '你好']
json.loads #將其他語言的json格式轉換為python的型別------反序列化
source = '[22,33,44,55]'
print(json.loads(source),type(json.loads(source)))
>[22, 33, 44, 55]
json.dump(v,f) 序列化v並寫到檔案
json.load(f) 讀取檔案f並做反序列化
pickle
pickle.dumps
pickle.loads
def func():
print('pickle')
data1 = pickle.dumps(func)
print(data1)
> b'\x80\x03c__main__\nfunc\nq\x00.'
data2 = pickle.loads(data1)
print(data2)
data2()
> pickle
syssys.path 獲取python讀取模組的預設路徑
sys.ar** 給py指令碼進行傳參
sys.ar**[1]獲取指令碼的第乙個引數
osos.rename
os.makedirs
os.path.join 拼接路徑
time
time.time() 獲取時間戳
time.sleep() 等待秒數
time.timezone() 獲取時區
datatime
datetime.datetime.now() 獲取當前時間
datetime.datetime.utcnow() 獲取當前utc時間
datetime.datetime.now().strftime('%y-%m-%d %h-%m-%s') 根據指定格式列印當前時間
獲取指定時區時間
from datetime import datetime,timezone,timedelta
time_zone = timezone(timedelta(hours=1))
time_zone_now = datetime.now(time_zone)
print(time_zone_now)
> 2020-05-17 06:22:23.753217+01:00
字串轉化為datetime
from datetime import datetime
str_time = '2011-11-11'
date_time = datetime.strptime(str_time,'%y-%m-%d')
print(date_time)
時間加減
from datetime import datetime,timedelta
now_time = datetime.now()
relative_time = timedelta(days=12)
result_time = now_time + relative_time
print('{}\n{}'.format(now_time,result_time))
> 2020-05-17 13:56:45.864314
2020-05-29 13:56:45.864314
時間戳與datetime的關係
#時間戳轉化為本地時間
import time
from datetime import datetime
ctime = time.time()
now_time = datetime.fromtimestamp(ctime)
print(ctime,now_time)
> 1589695409.8007972 2020-05-17 14:03:29.800797
#再將本地時間轉化為時間戳
new_ctime = now_time.timestamp()
print(new_ctime)
>1589695409.8007972
shutil
shutil.rmtree 刪除目錄,沒有返回值
shutil.move 重新命名檔名或目錄名
shutil.copyfile(src.file,des.file) 將src.file檔案拷貝為des.file
shutil.copymode() 只拷貝許可權
shutil.copy() 拷貝檔案和許可權
shutil.make_archive('base_name','format','root_dir') 將root_dir目錄以fromat的格式壓縮為base_name.zip
shutil.unpack_archive('archive_name','des_dir') 將壓縮包archive_name解壓到des_dir目錄下,如果目標目錄不存在則新建
getpass
getpass.getpass
random
random.randint(1,100) 獲取1-100的隨機數
hashlib
hashlib.md5('加鹽字串').update('要加密的字串').hexdigest() 字串md5加密
def md5_encry(data,fuse='md5encryption'):
import hashlib
obj = hashlib.md5(fuse.encode('utf-8'))
obj.update(data.encode('utf-8'))
encry_result = obj.hexdigest()
return encry_result
requests
requests.get(url) 請求url
requests.get(url).text 請求url的文字內容
如何把idaapi模組在外部給python使用
使用ida都知道idapython外掛程式,提供idc.py idaapi.py idautils.py,可以直接import進來,可以在ida執行時使用內部python外掛程式執行 然而這幾個函式在不使用ida上下文的時候是無法使用的,會提示找不到 idaapi模組,那麼 idaapi又是 來的呢...
python通達信模組 通達信轉python
好轉,學會以下操作就很容了。得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 返回指定目錄下的所有檔案和目錄名 os.listdir 函式用來刪除乙個檔案 os.remove 刪除多個目錄 osremovedirs r c python 略危險,熟練之後再用吧 檢驗給出的...
protocol buffer在python中使用
2.然後將potoc 3.0.0 win32.zip下 檔案 protoc.exe,放到protobuf python 3.0.0 protobuf 3.0.0 src中,在cmd 下在資料夾protobuf python 3.0.0 protobuf 3.0.0 python下依次執行 pytho...