import json from pathlib import Path def serialize_sets(obj): if isinstance(obj, set): return list(obj) raise TypeError def write_to_file(content, file_path: str, json_dumps=False, indent=None): PWD = Path(__file__).resolve().parent.parent file = PWD / file_path file.parent.mkdir(parents=True, exist_ok=True) with open(file, mode="w") as f: if json_dumps: return f.write(json.dumps(content, indent=indent, ensure_ascii=False, default=serialize_sets)) return f.write(content) def write_to_json_file(content, file_path: str, indent: int | None = 4): pwd = Path(__file__).resolve().parent.parent file = pwd / file_path file.parent.mkdir(parents=True, exist_ok=True) with open(file, mode="w") as f: return f.write(json.dumps(content, indent=indent, ensure_ascii=False, default=serialize_sets)) def append_to_file(content: str, file_path: Path): file_path.parent.mkdir(parents=True, exist_ok=True) with open(file_path, mode="a") as f: return f.write(content) def write_binary_to_file(content, file_path: Path): file_path.parent.mkdir(parents=True, exist_ok=True) with open(file_path, mode="wb") as f: return f.write(content) def read_file(file_path, json_loads): with open(file_path, "r") as file: if json_loads: return json.loads(file.read()) return file.read()