add feature to fomrat note and save top local directory
This commit is contained in:
2
bot_util/__init__.py
Normal file
2
bot_util/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
from .file_util import write_file, write_file_batch
|
||||
__all__ = ['write_file', 'write_file_batch']
|
48
bot_util/file_util.py
Normal file
48
bot_util/file_util.py
Normal file
@ -0,0 +1,48 @@
|
||||
import os
|
||||
from pathlib import Path
|
||||
def write_file(file_path: str, content: str) -> str:
|
||||
"""
|
||||
Write content to a file, creating directories if they do not exist.
|
||||
If the file already exists, it will be overwritten.
|
||||
:param file_path: Path to the file to write to.
|
||||
:param content: Content to write to the file.
|
||||
:return: True if the file was written successfully, False otherwise.
|
||||
"""
|
||||
# Check if the file path is absolute, if not, append to project root
|
||||
if not os.path.isabs(file_path):
|
||||
file_path = os.path.join(Path(__file__).resolve().parent.parent, file_path)
|
||||
dir_path = os.path.dirname(file_path)
|
||||
print(f"{dir_path}")
|
||||
|
||||
# Create the directory if it doesn't exist
|
||||
if not os.path.exists(dir_path):
|
||||
try:
|
||||
os.makedirs(dir_path)
|
||||
except OSError as e:
|
||||
print(f"Error creating directory {dir_path}: {e}")
|
||||
return "Error creating directory, files not written"
|
||||
|
||||
try:
|
||||
with open(file_path, 'w') as f:
|
||||
f.write(content)
|
||||
return "file written successfully"
|
||||
except IOError as e:
|
||||
print(f"Error writing to file {file_path}: {e}")
|
||||
return f"Error writing to file {file_path}: {e}"
|
||||
|
||||
def write_file_batch(file_paths: list[str], contents: list[str]) -> list[bool]:
|
||||
"""
|
||||
Write multiple files in batch.
|
||||
:param file_paths: List of file paths to write to.
|
||||
:param contents: List of contents to write to the files.
|
||||
:return: List of booleans indicating success or failure for each file.
|
||||
"""
|
||||
results = []
|
||||
for file_path, content in zip(file_paths, contents):
|
||||
result = write_file(file_path, content)
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
write_file(Path("test_data/output/test.txt"), "test")
|
Reference in New Issue
Block a user