| import sys |
| from typing import Optional, Callable, Tuple, Union |
|
|
| if "/www/server/panel/class" not in sys.path: |
| sys.path.insert(0, "/www/server/panel/class") |
|
|
| import public |
|
|
| ExecShell: Callable = public.ExecShell |
| write_log: Callable[[str, str, Tuple], Union[int, str, type(None)]] = public.WriteLog |
|
|
|
|
| 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() |
|
|