Source code for dpeeg.tools.filer
# Authors: SheepTAO <sheeptao@outlook.com>
# License: MIT
# Copyright the dpeeg contributors.
import logging
from pathlib import Path
import csv
[docs]
class Filer:
"""A simple file handler to write in realtime.
Parameters
----------
path : str | Path
File path. Support hierarchical folder structure.
mode : str
Mode of write.
exist_ok : bool
Whether to allow files that already exist.
"""
def __init__(
self,
path: str | Path,
mode: str = "a",
exist_ok: bool = False,
verbose: str | None = None,
) -> None:
self.path = Path(path)
self.mode = mode
if self.path.exists() and not exist_ok:
raise FileExistsError(f"File '{path}' already exists.")
self.path.parent.mkdir(parents=True, exist_ok=True)
[docs]
def write(self, data: str) -> None:
with open(self.path, self.mode) as f:
f.write(data)
class CSVer(Filer):
"""Heavy development."""
def __init__(self, path: str, mode: str = "a") -> None:
super().__init__(path, mode)
def write(self, data: str) -> None:
with open(self.path, self.mode) as f:
w = csv.writer(f)
w.writerows(data)