/
NARMANA
/
Programming
Обзор
Документация
Войти
/
NARMANA
/
Programming
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Jopa2.py
46 строк
2 KB
Пушкин Максим
Jopa2.py
07 июн 2026, 21:33
Верифицирован
07 июн 2026, 21:33
8dedf61
Код
Авторство
О чём код?
import argparse import csv import shutil import os parser = (argparse.ArgumentParser (description='Суммирование строк CSV-файла')) parser.add_argument ('input_file', help='Путь к входному CSV-файлу') parser.add_argument ('-r1',type=int, help='Начальная строка диапазона') parser.add_argument('-r2', type=int, help='Конечная строка диапазона') parser.add_argument('-b','--backup', action='store_true', help='Создать резервную копию файла') args = parser.parse_args() if args.backup: backup_name = args.input_file + '.bak' shutil.copy2(args.input_file, backup_name) print(f'Создана резервная копия: {backup_name}') with open(args.input_file, 'r', newline='', encoding='cp1251') as f: reader = csv.reader(f, delimiter=';') matrix = [list(map(float, row)) for row in reader] r1 = args.r1 if args.r1 is not None else 0 r2 = args.r2 if args.r2 is not None else len(matrix) - 1 if r1 < 0 or r2 >= len(matrix) or r1 > r2: print("Ошибка: неверный диапазон строк.") exit(1) result_row = [0] * len(matrix[0]) for i in range(r1, r2 + 1): for j in range(len(matrix[i])): result_row[j] += matrix[i][j] new_matrix = ( matrix[:r1] + [result_row] + matrix[r2 + 1:] ) with open(args.input_file, 'w', newline='', encoding='cp1251') as f: writer = csv.writer(f, delimiter=';') writer.writerows(new_matrix) print("Файл успешно обработан.")