# coding: utf-8
import os
import dill
import pickle
import json
import zipfile
[docs]def dill_dump(data, file):
with open(file, "wb") as f:
dill.dump(data, f)
[docs]def dill_load(file):
with open(file, "rb") as f:
data = dill.load(f)
return data
def save_pkl(data, file):
with open(file, "wb") as f:
pickle.dump(data, f)
def read_pkl(file):
with open(file, "rb") as f:
data = pickle.load(f)
return data
[docs]def save_json(data, file):
with open(file, "w", encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
[docs]def read_json(file):
with open(file, "r", encoding='utf-8') as f:
data = json.load(f)
return data
def make_zip(source_dir: str, file_zip: str) -> None:
"""打包目录为zip文件
:param source_dir: 文件夹路径
:param file_zip: 输出 zip 文件名称
:return: None
"""
assert os.path.isdir(source_dir)
f = zipfile.ZipFile(file_zip, 'w', compression=zipfile.ZIP_DEFLATED)
for parent, _, filenames in os.walk(source_dir):
for filename in filenames:
file = os.path.join(parent, filename)
f.write(file, file.replace(source_dir, ""))
f.close()
print(f"compress {source_dir} into {file_zip} success.")