summaryrefslogtreecommitdiff
path: root/scripts/do_stuff
blob: 6bdbfd7cedcdacee101f571fa573c961a5616124 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python3

import csv
import sys
from itertools import islice

def sum_csv_line(filename, line_number):
    """Return the sum of a specific line in a CSV file."""
    try:
        with open(filename, newline="") as file:
            reader = csv.reader(file)
            row = next(islice(reader, line_number - 1, None))
        # Convert values to float and sum
        return sum(float(x) for x in row)
    except StopIteration:
        raise ValueError(f"Line {line_number} exceeds file length")
    except ValueError as e:
        raise ValueError(f"Non-numeric value encountered: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python script.py <filename> <line_number>")
        sys.exit(1)

    filename = sys.argv[1]
    try:
        line_number = int(sys.argv[2])
    except ValueError:
        print("Line number must be an integer.")
        sys.exit(1)

    try:
        total = sum_csv_line(filename, line_number)
        print(f"Sum of line {line_number}: {total}")
    except Exception as e:
        print(f"Error: {e}")
        sys.exit(1)