python ca模組 python模組

2021-10-11 09:46:02 字數 4004 閱讀 2161

模組

模組定義

模組分為內建模組、自定義模組、第三方模組

自定義模組:將自定義模組的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...