69 lines
1.4 KiB
Python
69 lines
1.4 KiB
Python
import os
|
||
import sys
|
||
from typing import Optional, Tuple, Callable
|
||
|
||
if "/www/server/panel/class" not in sys.path:
|
||
sys.path.insert(0, "/www/server/panel/class")
|
||
|
||
|
||
import public
|
||
|
||
|
||
def write_file(filename: str, s_body: str, mode='w+') -> bool:
|
||
"""
|
||
写入文件内容
|
||
@filename 文件名
|
||
@s_body 欲写入的内容
|
||
return bool 若文件不存在则尝试自动创建
|
||
"""
|
||
try:
|
||
fp = open(filename, mode=mode)
|
||
fp.write(s_body)
|
||
fp.close()
|
||
return True
|
||
except:
|
||
try:
|
||
fp = open(filename, mode=mode, encoding="utf-8")
|
||
fp.write(s_body)
|
||
fp.close()
|
||
return True
|
||
except:
|
||
return False
|
||
|
||
|
||
def read_file(filename, mode='r') -> Optional[str]:
|
||
"""
|
||
读取文件内容
|
||
@filename 文件名
|
||
return string(bin) 若文件不存在,则返回None
|
||
"""
|
||
import os
|
||
if not os.path.exists(filename):
|
||
return None
|
||
fp = None
|
||
try:
|
||
fp = open(filename, mode=mode)
|
||
f_body = fp.read()
|
||
except:
|
||
return None
|
||
finally:
|
||
if fp and not fp.closed:
|
||
fp.close()
|
||
return f_body
|
||
|
||
|
||
class _DB:
|
||
|
||
def __call__(self, table: str):
|
||
import db
|
||
with db.Sql() as t:
|
||
t.table(table)
|
||
return t
|
||
|
||
|
||
DB = _DB()
|
||
|
||
GET_CLASS = public.dict_obj
|
||
|
||
ExecShell: Callable = public.ExecShell
|