/
Vladimir_Py
/
cp_generator
Обзор
Документация
Войти
/
Vladimir_Py
/
cp_generator
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/file_utils.py
60 строк
2 KB
Test Bot
протестировал генерацию КП и проверку судьей на нескольких примерах
02 май 2026, 14:54
02 май 2026, 14:54
58d056f
Код
Авторство
О чём код?
import csv import json import os import logging import yaml import pandas as pd def read_json(filepath: str) -> dict: """Читает json и возвращает словарь""" with open(filepath, 'r', encoding='utf-8') as f: return json.load(f) def read_csv(filepath): with open(filepath, mode='r', encoding='utf-8') as f: reader = csv.DictReader(f) return list(reader) def read_yaml(filepath: str) -> dict: """Читает yaml и возвращает словарь""" with open(filepath, 'r', encoding='utf-8') as f: return yaml.safe_load(f) or {} def read_txt(filepath: str) -> str: """Читает файл и возвращает строку""" with open(filepath, 'r', encoding='utf-8') as f: return f.read() def save_txt(filepath : str, text : str): """ Сохраняет в файл""" with open(filepath, 'w', encoding='utf-8') as f: f.write(text) def save_csv(data: dict, filepath: str = 'classified_orders_1_gpt4.csv', sep=',', encoding='utf-8-sig', overwrite: bool = False): """ Сохраняет данные в CSV. По умолчанию дописывает (append), если файл существует. :param data: Данные в формате словаря или списка словарей. :param filepath: Путь к файлу. :param overwrite: Если True — перезаписывает файл. Если False — дописывает. """ df = pd.DataFrame(data) # Определяем режим: 'w' (write) для перезаписи, 'a' (append) для дозаписи mode = 'w' if overwrite else 'a' # Пишем заголовки, если мы перезаписываем файл (overwrite=True) ИЛИ если файла еще не существует. # В остальных случаях (дозапись в существующий файл) заголовки не нужны. header = overwrite or not os.path.exists(filepath) df.to_csv( filepath, mode=mode, index=False, sep=sep, encoding=encoding, header=header )