python common notes

package

1
2
3
4
5
6
import pathlib
import sys
from os.path import dirname, abspath

PROJECT_BASE_PATH = dirname(abspath(pathlib.Path(__file__).absolute()))
sys.path.append(PROJECT_BASE_PATH)

path

判断路径是否存在

1
os.path.exists('path')

获取 Home 路径

1
2
from pathlib import Path
Path.home() # 用户目录

json

序列化类

1
json.dumps(obj, default=vars)  # 使用 vars 序列化对象, 打印对象的所有属性

multiprocessing

共享自定义对象

1
2
3
4
5
6
7
8
9
class A():
pass

AProxy = MakeProxyType('A', public_methods(A))
setattr(multiprocessing.managers, 'A', AProxy)
SyncManager.register('A', A, AProxy)
manager = SyncManager()
manager.start()
shared_a = manager.A()