#!/usr/bin/env python

import sys
import os.path
import re

if (len(sys.argv) != 2) and (len(sys.argv) != 4):
    print("Syntax:", sys.argv[0], "<directory with result.csv> [<sf> <streams>]")
    sys.exit(1)
elif len(sys.argv) == 2:  # defaults
    factor = 0
    streams = 0
else:
    factor = int(sys.argv[2])
    streams = int(sys.argv[3])

filename = sys.argv[1] + "/result.csv"
if not filename.startswith("/"):
    filename = os.getcwd() + "/" + filename

if not os.path.isfile(filename):
    print("No result.csv found in", sys.argv[1])
    sys.exit(1)

try:
    with open(filename, "r", encoding="utf-8") as f:
        lines = f.readlines()
except Exception as e:
    print("Error reading file:", e)
    sys.exit(1)

if len(lines) != 1:
    print("result.csv in", sys.argv[1], "is empty or has multiple lines.")
    sys.exit(1)

geom = 1.0
count = 0

for line in lines:
    values = line.strip().split(';')  # 去除换行符并分割
    for j in values[1:-1]:
        j = j.strip()
        if j != '' and float(j) != 0.1:
            value = float(j)
            if value == 0.0:
                print("result.csv contains zero values. Aborting!")
                sys.exit(1)
            geom *= value
            count += 1

if count > 0:
    geom = 3600.0 * factor / (geom ** (1.0 / count))
    print(geom, end=' ')

    last_value = float(values[-1].strip())
    if last_value != 0.1:
        thr = 3600.0 * factor * 22 * streams / last_value
        print(thr, end=' ')
        qph = (geom * thr) ** 0.5
        print(qph)
    else:
        print()  # 换行
else:
    print("No data found in result.csv")
    sys.exit(1)


# import sys
# import os.path
# import re

# if (len(sys.argv) != 2) and (len(sys.argv) != 4):
#    print "Syntax:",sys.argv[0]," <directory with result.csv> [<sf> <streams>]"
#    sys.exit(1)
# elif len(sys.argv) == 2: # defaults
#    factor=0
#    streams=0
# else:
#    factor=int(sys.argv[2])
#    streams=int(sys.argv[3])

# filename=sys.argv[1]+"/result.csv"
# if filename[0] != "/":
#    filename=os.getcwd()+"/"+filename
# if not os.path.isfile(filename):
#    print "No result.csv found in", sys.argv[1]
#    sys.exit(1)

# f=open(filename,"r")
# lines=f.readlines()
# if len(lines) != 1:
#    print "result.csv in",sys.argv[1],"is empty."
#    sys.exit(1)
# geom=1.0
# count=0
	
# for i in lines:
#    values=i.split(';')
#    for j in values[1:-1]:
#       if j.strip() != '' and float(j) != 0.1:
#          #print float(j)
#          if float(j) == 0.0:
#             print "result.csv contains zero values. Aborting!"
#             sys.exit(1)
#          geom*=float(j)
#          count+=1
# if count > 0:
#    geom=3600.0*factor / geom**(1.0/count)
#    print geom,
#    if values[-1] != 0.1:
#       thr=float(3600.0 * factor * 22 * streams / (float(values[-1])))
#       print thr,
#       qph=(geom*thr)**0.5
#       print qph
# else:
#    print "No data found in result.csv"
#    sys.exit(1)
