def tuples_to_file(filename = '', data = []):
    # tar inn en liste med tupler
    # [(w1_co2, massefraksjon co2), (w1_h2o, massefraksjon h2o), ...]
    with open('data_files/' + filename, 'w') as file:
        for k, v in data:
            file.write(str(k) + ' ' + str(v) + '\n')
    print('write sucsessful')

def file_to_list_tuples(filename = ''):
    #returnerer filen generert av tuples_to_file som en liste med tupler
    with open('data_files/' + filename, 'r') as file:
        lines = file.readlines()
        dataList = [None for x in lines]
    for i in range(len(dataList)):
        dataList[i] = (lines[i].split()[0], lines[i].split()[1])
    return dataList

def list_to_file(filename='', data = []):
    #generer en .txt fil med tab-separerte verdier
    print(data)
    import os.path
    print('data:', data)
    if os.path.isfile('data_files/' + filename):
        melding = 'vil du overskrive ' + filename + '? (j/n)'
        jn = input(melding)
    else:
        print(filename + ' blir opprettet')
        jn = 'j'
    if jn == 'j':
        with open('data_files/' + filename, 'w') as file:
            for v in data:
                file.write(str(v) + '   ')
        print('write sucsessful')
    else:
        print('overskriver ikke')
        return None

def file_to_list(filename=''):
    #tar inn filen generert av list_to_file og returnerer en liste
    with open('data_files/' + filename, 'r') as file:
        vals = file.readline().split()
        dataList = [float(x) for x in vals]

    return dataList

def dict_to_file(filename='', dataDict={}, overWrite = False):
    #dataDict[w1_co2] = vektfraksjon co2 i strom 1
    #dataDict[m1] = massestrom, strom 1
    jn = 'n'
    if overWrite == False:
        import os.path
        print('dataDict : ')
        for k,v in dataDict.items():
            print(k,'   ',v)

        if os.path.isfile('data_files/' + filename):
            melding = 'vil du overskrive ' + filename + '? (j/n)'
            jn = input(melding)
        else:
            print(filename + ' blir opprettet')
            jn = 'j'

    if jn == 'j' or overWrite == True:
        with open('data_files/' + filename,'w') as file:
            for k,v in dataDict.items():
                file.write(k + '    ' + str(v) + '\n')
        print('write sucsessful')
    else:
        print('overskriver ikke')
        return None

def add_key_val_to_file(filename=''):
    #legger til et key/value par i en eksisterende fil
    dataDict = {}
    while True:
        new = input('ny? ')
        if new == 'n':
            break
        key = input('key : ')
        val = input('val : ')

        dataDict[key] = val

    with open('data_files/' + filename, 'a') as file:
        for k,v in dataDict.items():
            file.write(k + '    ' + str(v) + '\n')
        print('write sucsessful')

def file_to_dict(filename=''):
    #tar inn filen generert av dict_to_file
    dataDict = {}
    with open('data_files/'+filename, 'r') as file:
        for line in file.readlines():
            dataDict[line.split()[0]] = float(line.split()[1])
    return dataDict

def add_dict_to_file(filename='', dataDict = {}):
    import os.path
    print('dataDict : ')
    for k, v in dataDict.items():
        print(k, '   ', v)

    if os.path.isfile('data_files/' + filename):
        jn = input('vil du legge til dataDict i ' + filename + '? (j/n)')
    else:
        print('Den filen eksisterer ikke!')
        return None

    if jn == 'j':
        with open('data_files/' + filename,'a') as file:
            for k,v in dataDict.items():
                file.write(k + '    ' + str(v) + '\n')
        print('write sucsessful')
    else:
        print('overskriver ikke')
        return None

def remove_from_dict(filename=''):
    dataDict = file_to_dict(filename)
    print('dataDict : ')
    for k, v in dataDict.items():
        print(k, '   ', v)

    key = True
    while key:
        key = input('Hvilket element vil du fjerne? (enter for å avslutte, "vis" for å vise ' + filename +')')
        if key == 'vis':
            print('dataDict : ')
            for k, v in dataDict.items():
                print(k, '   ', v)

        elif key in dataDict.keys():
            jn = input('vil du fjerne ' + key + ' : ' +str(dataDict[key]) + ' ? (j/n)')
            if jn == 'j':
                del dataDict[key]
                print('Fjernet ' + key)

        elif key:
            print('Det er ikke noe element som heter ' + key)

    dict_to_file(filename=filename, dataDict=dataDict, overWrite=True)

def print_from_dict(file = '', key = ''):
    #skriver ut verdien som svarer til 'key' fra filen 'file'
    dataDict = file_to_dict(file)
    print(dataDict[key])



